     }
     
     @IBAction func backButtonDidTouch(sender: AnyObject) {
+        goBack()
+    }
+    
+    func goBack() {
         dismissViewControllerAnimated(true, completion: nil)
     }
+    
+    func animateButtonsIn() {
+        for (index, button) in infoButtons.enumerate() {
+            button.animation = "fadeInRight"
+            button.duration = ButtonAnimationDuration
+            button.delay = CGFloat(index + 1) * ButtonAnimationDelay
+            button.curve = "easeInOut"
+            button.animate()
+        }
+        
+        for (index, label) in twilightLabels.enumerate() {
+            label.animation = "fadeInRight"
+            label.duration = ButtonAnimationDuration
+            label.delay = CGFloat(index + 2) * ButtonAnimationDelay + CGFloat(0.250)
+            label.curve = "easeInOut"
+            label.animate()
+        }
+    }
+    
+    func animateButtonsOut(completion: (()->())) {
+        for (index, button) in infoButtons.enumerate() {
+            button.animation = "fadeOut"
+            button.duration = 0.5
+            button.delay = CGFloat(index + 1) * ButtonAnimationDelay
+            
+            if index == infoButtons.count - 1 {
+                button.animateNext(completion)
+            } else {
+                button.animate()
+            }
+        }
+        
+        for (index, label) in twilightLabels.enumerate() {
+            label.animation = "fadeOut"
+            label.duration = 0.5
+            label.delay = CGFloat(index + 2) * ButtonAnimationDelay
+            label.animate()
+        }
+    }
+    
+    func infoButtonPressed(sender: AnyObject) {
+        animateButtonsOut() {
+            self.goBack()
+        }
+    }
 }
        astronomicalButton.addSimpleShadow()
        nightButton.addSimpleShadow()
        
        let highlightColour = UIColor.lightGrayColor()
        dayButton.setTitleColor(highlightColour, forState: .Highlighted)
        civilButton.setTitleColor(highlightColour, forState: .Highlighted)

    
    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        
        animateButtonsIn()
    }
    
    override func viewDidAppear(animated: Bool) {
