         }
     }
     
-    
-    
-    
+    // Append embedded view to container view's view hierachy
+    func addEmbeddedViewController(viewController: UIViewController, position: Position) {
+        (viewController as? EmbeddedViewController)?.delegate = self
+        view.addSubview(viewController.view)
+        viewController.view.translatesAutoresizingMaskIntoConstraints = false
+        view.addConstraint(alignCenterXConstraint(forItem: viewController.view, toItem: centerViewController.view, position: position))
+        view.addConstraint(alignCenterYConstraint(forItem: viewController.view, toItem: centerViewController.view, position: position))
+        view.addConstraints(sizeConstraints(forItem: viewController.view, toItem: centerViewController.view))
+        view.layoutIfNeeded()
+    }
+    
+    // MARK: - Layout Constraints
+    // Create a layout constraint that make view item to align center x to the respective item with offset according to the position
+    // For view item that is positioned on the left will offset by -toItem.width, and +toItem.width if it's positioned on the right
+    func alignCenterXConstraint(forItem item: UIView, toItem: UIView, position: Position) -> NSLayoutConstraint {
+        let offset = position == .Left ? -self.view.frame.width : position == .Right ? toItem.frame.width : 0
+        return NSLayoutConstraint(item: item, attribute: .CenterX, relatedBy: .Equal, toItem: toItem, attribute: .CenterX, multiplier: 1, constant: offset)
+    }
+    
+    // Create a layout constraint that make view item to align center y to the respective item height offset according to the position
+    // For view item that is positioned on the top will offset by -toItem.height, and +toItem.height if it's positioned on the right
+    func alignCenterYConstraint(forItem item: UIView, toItem: UIView, position: Position) -> NSLayoutConstraint {
+        let offset = position == .Top ? -self.view.frame.height : position == .Bottom ? toItem.frame.height : 0
+        return NSLayoutConstraint(item: item, attribute: .CenterY, relatedBy: .Equal, toItem: toItem, attribute: .CenterY, multiplier: 1, constant: offset)
+    }
+    
+    // Create width and height layout constraints that make make the item.size same as the toItem.size
+    func sizeConstraints(forItem item: UIView, toItem: UIView) -> [NSLayoutConstraint] {
+        let widthConstraint = NSLayoutConstraint(item: item, attribute: .Width, relatedBy: .Equal, toItem: toItem, attribute: .Width, multiplier: 1, constant: 0)
+        let heightConstraint = NSLayoutConstraint(item: item, attribute: .Height, relatedBy: .Equal, toItem: toItem, attribute: .Height, multiplier: 1, constant: 0)
+        return [widthConstraint, heightConstraint]
+    }
     
     /*
      * MARK: - Navigation

        }
    }
    
    
    
    
    // MARK: - EmbeddedViewcontrollerDelegate Conformance
    func isContainerActive(position: Position) -> Bool {
        let targetOffset: CGVector

        rightContainerOffset = CGVectorMake(centerContainerOffset.dx - frameWidth, centerContainerOffset.dy)
    }
    
    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        
    }
    
    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        
