 		var sections = [SectionLayoutViewModel]()
 		/// used for fast lookup of layoutAttributesForElementsInRect
 		var itemFrameForIndexPath = [(indexPath:NSIndexPath, frame:CGRect)]()
-		//TODO: refactor this to reflect sections and cells
+		/// precalculated hierarchy of frames per section for header, cell and footer
 		var layoutFrameTree = MosaicLayoutFrameTree(sections: [])
 		
 		/*

					// using grid frame and scale factor plus grad frame calculated interitem and line spacing
					let xPos = gridFrame.origin.x * unitPixelScaleFactor + interitemSpacing * CGFloat(Int(gridFrame.origin.x) % section.constrainedSideGridLength)
					let yPos = gridFrame.origin.y * unitPixelScaleFactor + lineSpacing * CGFloat(gridFrame.origin.y)
					// origin should offset using the section origin which was computed including the section and content inset
					let origin = CGPoint(x: xPos + sectionOrigin.x, y: yPos + sectionOrigin.y)
					// calculate size using grid frame * scale factor
					let size = CGSize(
						width: gridFrame.size.width * unitPixelScaleFactor + interitemSpacing * (gridFrame.size.width - 1),

					cellFrames.append(MosaicLayoutFrameTree.SectionFrameNode.CellFrameNode(frame: cellFrame))
					// used for fast lookup of items in rect
					itemFrameForIndexPath.append((indexPath:NSIndexPath(forItem: rowIndex, inSection: sectionIndex), frame:cellFrame))
					if cellFrame.origin.y + cellFrame.size.height > sectionVerticalExtent {
						sectionVerticalExtent = cellFrame.origin.y + cellFrame.size.height
					}
				}
				
				
				var footerFrame = frameForSupplementaryViewOfKind(UICollectionElementKindSectionFooter, inSection:sectionIndex)
				footerFrame?.origin.y = sectionVerticalExtent
			
				let sectionFrameNode = MosaicLayoutFrameTree.SectionFrameNode(cells: cellFrames, headerFrame: headerFrame, footerFrame: footerFrame)
				
				sectionFrames.append(sectionFrameNode)
				// recalculate contentSize with addition of new section + footer height and section and content inset bottoms
				let newContentSize = MosaicLayoutFrameTree(sections: sectionFrames).contentSize
				contentSize = CGSizeMake(newContentSize.width, newContentSize.height  + sectionInset.bottom + contentInset.bottom)
			}
			
			layoutFrameTree = MosaicLayoutFrameTree(sections: sectionFrames)
