 		SwiftyFormLog("did expand collapse")
 	}
 	
-	func lookup(indexPath indexPath: NSIndexPath, sections: [TableViewSection]) -> TableViewCellArrayItem? {
-		if indexPath.section < 0 { return nil }
-		if indexPath.row < 0 { return nil }
-		if indexPath.section >= sections.count { return nil }
-		let section = sections[indexPath.section]
-		let items = section.cells.visibleItems
-		if indexPath.row >= items.count { return nil }
-		return items[indexPath.row]
-	}
-	
-	func assignTintColors(indexPath: NSIndexPath, sections: [TableViewSection]) {
+	func assignTintColors(indexPath: NSIndexPath, sectionArray: TableViewSectionArray) {
 		print("assign tint colors: \(indexPath)")
 		
-		guard let item = lookup(indexPath: indexPath, sections: sections) else {
+		guard let item = sectionArray.findVisibleItem(indexPath: indexPath) else {
 			print("no visible cell for indexPath: \(indexPath)")
 			return
 		}

			if let indexPath = whatToExpand.expandedIndexPath {
				// TODO: clean up.. don't want to subtract by 1
				let indexPath2 = NSIndexPath(forRow: indexPath.row-1, inSection: indexPath.section)
				self.assignTintColors(indexPath2, sections: sections)
			}
			
			CATransaction.begin()

			for indexPath in whatToCollapse.indexPaths {
				// TODO: clean up.. don't want to subtract by 1
				let indexPath2 = NSIndexPath(forRow: indexPath.row-1, inSection: indexPath.section)
				self.assignDefaultColors(indexPath2, sectionArray: sectionArray)
			}
			
			beginUpdates()
