             isProcessingTransition = false
         }
     }
+
+    /**
+     Transition *immediately* into the specified screen. The `MainViewController`
+     should not be in the middle of preparing for a transition.
+     */
 
     func transitionInto(newScreen: Screen, from oldVC: UIViewController) {
         guard !isProcessingTransition else {

            transitionOut(from: oldVC, downLevels: 1)
        }
    }

    func transitionOut(from oldVC: UIViewController, downLevels times: Int) {
        guard !isProcessingTransition else {


class MainViewController: UIViewController {

    // MARK: Properties

    @IBOutlet weak var contentView: UIView!
    @IBOutlet weak var menuBackground: UIImageView!

    private var viewControllerStack = [UIViewController]()
    private var isProcessingTransition = false

    // MARK: UIViewController

    override func viewDidLoad() {
        super.viewDidLoad()
