     @IBOutlet weak var banner: UIView!
 
     var movies: [Movie] = []
-    
+    var refreshControl: UIRefreshControl!
+
     override func viewDidLoad() {
         super.viewDidLoad()
-        
+
+        refreshControl = UIRefreshControl()
+        refreshControl.addTarget(self, action: "onRefresh:", forControlEvents: .ValueChanged)
+        tableView.insertSubview(refreshControl, atIndex: 0)
+
         tableView.delegate = self
         tableView.dataSource = self
 
-        fetchData()
+        fetchData(true)
     }
 
     override func didReceiveMemoryWarning() {
         super.didReceiveMemoryWarning()
         // Dispose of any resources that can be recreated.
     }
-
+    
     func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
         return movies.count
     }

        return cell
    }

    func fetchData() -> Void {
        let apiKey = ""
        let url = NSURL(string: "http://api.rottentomatoes.com/api/public/v1.0/lists/movies/in_theaters.json?apikey=\(apiKey)")!
        let request = NSURLRequest(URL: url)

        MBProgressHUD.showHUDAddedTo(self.view, animated: true)

        NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response, data, error) in
            MBProgressHUD.hideHUDForView(self.view, animated: true)

            if error != nil {
                self.displayError(error.localizedDescription)

        println(message)
        banner.hidden = false
    }

    func onRefresh(sender: AnyObject) {
        fetchData(false)
    }
    
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        let controller = segue.destinationViewController as MovieDetailViewController
