             return infoPool.count() > 1 ? infoPool.lastInfoItem()?.updatedAt : nil
         }
         
-        onTheMapClient.fetchStudents(limit: fetchLimit, newerThan: newestDate, olderThan: oldestDate) {
-            students, error in
+        onTheMapClient.fetchStudents(limit: fetchLimit, newerThan: newestDate, olderThan: oldestDate) { students, error in
             if let newLocations = students {
                 dispatch_async(dispatch_get_main_queue()) {
-                    // manipulate the data store on the main thread
                     self.infoPool.storeInfoItems(newLocations)
                     dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0)) {
-                        // but we don't know how expensive the completion handler is, so put it on off the main thread
                         Logger.info("found \(newLocations.count) items")
                         completionHandler(success: true, error: nil)
                     }

    
    // MARK: Access Data Owned by Logged In User
    
    var userLocationCount: Int {
        return infoPool.count(filter: userFilter)
    }
    
    // return the student location for the specified index
    func userLocationAtIndex(index: Int) -> StudentInformation? {
        return infoPool.infoAtIndex(index, filter: userFilter)
    }
    
    // return the entire list of student locations
    var userLocations: [StudentInformation] {
        return infoPool.infoItemsAsArray(filter: userFilter)
    }
    
    // if the location data currently associated with the current user
    // is deleted, we must reset those attributes.
    func clearUserLocationWithId(objectId: String) {
        if currentUser?.objectId == objectId {
            currentUser?.objectId = nil

        }
    }
    
    // fetch the current application user's data objects, use first item as the user's default info
    func fetchDataForCurrentUser(completionHandler: (success: Bool, error: NSError?) -> Void) {
        if let studentKey = currentUser?.studentKey {
            onTheMapClient.fetchStudentInformationForKey(studentKey) { students, error in
                if let newLocations = students {
                    dispatch_async(dispatch_get_main_queue()) {
                        if newLocations.count > 0 {
                            let defaultInfo = newLocations[0]
                            self.currentUser?.objectId = defaultInfo.objectId
                            self.currentUser?.mediaUrl = defaultInfo.mediaUrl
                            self.currentUser?.mapString = defaultInfo.mapString
