         }
         else {
             // Instantiate a new VC from the router if not found in cache already
-            return self.environment.router?.controllerForBlock(block, courseID: courseQuerier.courseID)
+            if let viewController = self.environment.router?.controllerForBlock(block, courseID: courseQuerier.courseID) {
+                cacheManager.addToCache(viewController, blockID: block.blockID)
+                return viewController
+            }
+            return nil
         }
     }
     

            
            if let blockController = nextController as? CourseBlockViewController {
                currentChildID = blockController.blockID
                //TODO: Remove when unifying Scrolling with Toolbar Buttons
                if let childID = blockController.blockID {
                    self.cacheManager.addToCache(nextController, blockID: childID)
                }
            }
            return
        }

    public func pageViewController(pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [AnyObject], transitionCompleted completed: Bool) {
        if let currentController = pageViewController.viewControllers.first as? CourseBlockViewController {
            currentChildID = currentController.blockID
        }
        self.updateNavigation()
    }
