         attrib.frame = CGRect(x: cachedValue.2, y: cachedValue.3, width: cachedValue.4, height: cachedValue.5)
         if minimumInteritemSpacing > -1, minimumLineSpacing > -1 {
             var frame = attrib.frame.insetBy(dx: minimumInteritemSpacing, dy: minimumLineSpacing)
-            if frame == .null {
-                frame = attrib.frame.insetBy(dx: 0, dy: 0)
-            }
+            if frame == .null { frame = attrib.frame.insetBy(dx: 0, dy: 0) }
             attrib.frame = frame
         }
         return attrib
     }
     
-    func determineToApplyAttribs(_ item: Int, section: Int) -> (Int, Int, CGFloat, CGFloat, CGFloat, CGFloat)? {
+    func determineToApplyAttribs(_ item: Int, section: Int) -> (item: Int, section: Int, xOffset: CGFloat, yOffset: CGFloat, width: CGFloat, height: CGFloat)? {
         let monthIndex = monthMap[section]!
         let numberOfDays = numberOfDaysInSection(monthIndex)
         // return nil on invalid range

                        }
                    } else {
                        totalDayCounter += 1
                        if totalDayCounter % fullSection == 0 { // If you have a full section
                            yCellOffset = 0
                            xCellOffset = sectionInset.left
                            contentWidth += (attribute.4 * 7) + endSeparator
                            stride = contentWidth
                            sectionSize.append(contentWidth)
                        } else {
                            if totalDayCounter >= delegate.totalDays {
                                contentWidth += (attribute.4 * 7) + endSeparator // not bothered about this. as should be called only on final days
                                sectionSize.append(contentWidth)
                            }
                            
                            if totalDayCounter % maxNumberOfDaysInWeek == 0 { // A week (7days--1row) is completed
                                xCellOffset = sectionInset.left
                                yCellOffset += attribute.5
                            }
                        }
                    }
                    
                }
                // Save the content size for each section
                
                if strictBoundaryRulesShouldApply {
                    contentWidth += endSeparator
                    sectionSize.append(contentWidth)
                    stride = sectionSize[virtualSection]  // Stride = contentWidth + endSeparator
                }
                virtualSection += 1
            }

        yCellOffset = 0
        contentHeight = 0
        contentWidth = 0
        xStride = 0
        firstContentOffsetWasSet = false
    }
}
