         super.init(frame: frame)
 
         zoom.initialize(view: self, onChange: onZoomChange)
+        initializeView()
     }
 
     private func onZoomChange(t: Transform) {
         if let viewLayer = drawingView.mLayer {
             viewLayer.transform = CATransform3DMakeAffineTransform(t.toCG())
         }
-    }
-
-    open override func didMoveToSuperview() {
-        super.didMoveToSuperview()
-
-        initializeView()
     }
 
     open override func layoutSubviews() {

        self.renderer = RenderUtils.createNodeRenderer(node, view: drawingView)

        zoom.initialize(view: self, onChange: onZoomChange)
    }

    public convenience init(node: Node, frame: CGRect) {

/// You could create your own view extended from MacawView with predefined scene.
///

open class MacawView: MView, MGestureRecognizerDelegate {

    internal var drawingView = DrawingView()

