 }
 
 public struct TSPoint {
-    var x:CGFloat
-    var y: CGFloat
-    var unit:TSUnit
+    public var x:CGFloat
+    public var y: CGFloat
+    public let unit:TSUnit
     
     
-    var cgpoint:CGPoint{
+    public var cgpoint:CGPoint{
         return CGPoint(x: x.toPoint(unit: unit), y: y.toPoint(unit: unit))
     }
     
-    init(x:CGFloat, y:CGFloat, unit:TSUnit = .mm){
+    public init(x:CGFloat, y:CGFloat, unit:TSUnit = .mm){
         self.x = x
         self.y = y
         self.unit = unit

        return inchDiagonal * point / pointDiagonal
    }
    
    func toMm(inch:CGFloat)->CGFloat{
        return inch * 25.4
    }
    
    func toCm(inch:CGFloat)->CGFloat{
        return inch * 2.54
    }
    
    func toInch(mm:CGFloat)->CGFloat{
        return mm / 25.4
    }
    
    func toInch(cm:CGFloat)->CGFloat{
        return cm / 2.54
    }
    
    private func platform() -> String {
        var size : Int = 0
        sysctlbyname("hw.machine", nil, &size, nil, 0)
        var machine = [CChar](repeating: 0, count: Int(size))


public struct TSScale {
    
    var inchRatio:CGFloat = 0
    var iPadMiniPlatforms:[String] = ["iPad2,5","iPad2,6","iPad2,7","iPad4,4","iPad4,5","iPad4,6","iPad4,7","iPad4,8","iPad4,9","iPad5,1","iPad5,2"]
    
    public init() {
        let inchDiagonal = displayInch()
        let bounds = UIScreen.main.bounds
        let pointWidth = bounds.width
