     }
     
     func scrollViewDidScroll(scrollView: UIScrollView) {
-        let scrollViewHeight: CGFloat = scrollView.frame.size.height;
-        let scrollViewContentSizeHeight: CGFloat = scrollView.contentSize.height;
-        let scrollOffset: CGFloat = scrollView.contentOffset.y;
+        let scrollViewHeight = scrollView.frame.size.height;
+        let scrollViewContentSizeHeight = scrollView.contentSize.height;
+        let scrollOffset = scrollView.contentOffset.y;
         
         if(self.numberOfReceiptsChangedUponLastUpdate &&
-            scrollOffset + scrollViewHeight >= 0.8 * scrollViewContentSizeHeight) {
-            // load more
+                !self.refreshControl.refreshing &&
+                scrollOffset + scrollViewHeight >= 0.8 * scrollViewContentSizeHeight) {
             loadAdditionalReceipts()
         }
     }
     
     func loadAdditionalReceipts() {
-        let previousNumberOfReceipts = 0 // get from data source
-        // update
-        let updatedNumberOfReceipts = 0 // get from data source
+        let previousNumberOfReceipts = self.receiptsTableViewDataSource.receipts.count
+        self.fetchReceiptsFromAPI()  // this needs to be refactored to get(skip: receipts.count, take: default)
+        let updatedNumberOfReceipts = self.receiptsTableViewDataSource.receipts.count
         
         self.numberOfReceiptsChangedUponLastUpdate = (previousNumberOfReceipts == updatedNumberOfReceipts) ? false : true;
     }

        self.navigationController!.toolbar.barTintColor = UIColor.digipostSpaceGrey()
    }
    
    func fetchReceiptsFromAPI() {
        print("Attempting to fetch data...")
        
        var fetchedReceipts: [POSReceipt] = []
        
        func setFetchedObjects(APICallResult: Dictionary<String,AnyObject>){
            self.receiptsTableViewDataSource.receipts = parseReceiptsFrom(APICallResult["receipt"]!) // set in success method as it's called asynchronously
            print("Successfully fetched receipts.")
            self.tableView.reloadData()
        }
        func f(e: APIError){ print(e.altertMessage) }
        

        
        self.navigationItem.title = "Receipts"
        
        self.tableView.rowHeight = UITableViewAutomaticDimension
        self.tableView.estimatedRowHeight = 160
        self.tableView.separatorInset = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0)
        self.tableView.layoutMargins = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0)
        
        let tableFooterView = UIView(frame: CGRectZero)
        self.tableView.tableFooterView = tableFooterView
        self.tableView.tableFooterView?.hidden = true
        self.tableView.backgroundColor = UIColor.digipostAccountViewBackground()
        
        self.receiptsTableViewDataSource = UncategorisedReceiptsTableViewDataSource.init(asDataSourceForTableView: self.tableView)
        self.tableView.delegate = self;
        self.tableView.addSubview(self.refreshControl)
    }
    
    override func viewWillAppear(animated: Bool) {
