     
     public var center : Point {
         get {
-            return originalBoundary.center * baseTransform
+            return originalBoundary.center * transform
         }
         set {
             let _center = center

                    var boundary = cache.boundary
                    let offset = newValue - _center
                    boundary?.origin += offset
                    baseTransform *= SDTransform.translate(x: offset.x, y: offset.y)
                    return Cache(originalBoundary: cache.originalBoundary, boundary: boundary, table: cache.table)
                }
            }

    
    private var components: [Component]
    
    public var transform : SDTransform = SDTransform.identity {
        willSet {
            if transform != newValue {
                cache = cache.lck.synchronized { Cache(originalBoundary: cache.originalBoundary, boundary: nil, table: cache.table) }
            }
        }
    }
    
