     private func removeCurrentChild() {
         
         self.currentChildView?.removeFromSuperview()
+        self.currentChildView = nil
+        
         self.currentChildViewController?.removeFromParentViewController()
+        self.currentChildViewController = nil
         
     }
     
     private func configureNewChildView(child: ChildViewController) {
         
+        self.currentChildViewController = child
         self.currentChildView = child.view
+        
         self.currentChildView!.layer.zPosition = 2.0
-        
-        self.currentChildViewController = child
         
         child.view.frame = childViewFrame
         self.addChildViewController(child)

    
    private func configureSettingsViewWithNewChild(child: ChildViewController) {
        
        
        
    }
    


    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        
        // respond differently based on the tableview
        switch tableView {
            
