     /// Reload the date of specified date-cells on the calendar-view
     /// - Parameter dates: Date-cells with these specified dates will be reloaded
     public func reloadDates(dates: [NSDate]) {
-        let paths = pathsFromDates(dates)
-        reloadPaths(paths)
+        reloadIndexPathsIfVisible(pathsFromDates(dates))
     }
     
     /// Select a date-cell if it is on screen

                }
                
                let sectionIndexPath = pathFromDates[0]
                allIndexPathsToReload.append(sectionIndexPath)
                
                let selectTheDate = {
                    self.addCellToSelectedSetIfUnselected(sectionIndexPath, date: date)
                    self.calendarView.selectItemAtIndexPath(sectionIndexPath, animated: false, scrollPosition: .None)
                    
                    // If triggereing is enabled, then let their delegate handle the reloading of view, else we will reload the data
                    if triggerSelectionDelegate {
                        self.collectionView(self.calendarView, didSelectItemAtIndexPath: sectionIndexPath)
                    } else { // Although we do not want the delegate triggered, we still want counterpart cells to be selected
                        let cellState = self.cellStateFromIndexPath(sectionIndexPath, withDate: date)
                        if let aSelectedCounterPartIndexPath = self.selectCounterPartCellIndexPath(sectionIndexPath, date: date, dateOwner: cellState.dateBelongsTo) {
                            // ONLY if the counterPart cell is visible, then we need to inform the delegate
                            self.refreshIndexPathIfVisible(aSelectedCounterPartIndexPath)
                        }
                    }
                }
                
                let deSelectTheDate = { (indexPath: NSIndexPath) -> Void in
                    self.calendarView.deselectItemAtIndexPath(indexPath, animated: false)
                    if
                        self.theSelectedIndexPaths.contains(indexPath),
                        let index = self.theSelectedIndexPaths.indexOf(indexPath) {

        // delegate will not get called. Once animation is on let's force a scroll so the delegate MUST get caalled
        
        let theOffset = direction == .Horizontal ? offset.x : offset.y
        let divValue = direction == .Horizontal ? calendarView.frame.width : calendarView.frame.height
        let sectionForOffset = Int(theOffset / divValue)
        let calendarCurrentOffset = direction == .Horizontal ? calendarView.contentOffset.x : calendarView.contentOffset.y
        if
            calendarCurrentOffset == theOffset ||
            (self.pagingEnabled && (sectionForOffset ==  currentSectionPage)){
            retval = true
        } else {
