 		if section < headers.count {
 			if let header = headers[section] {
 				let view = tableView.dequeueReusableHeaderFooterViewWithIdentifier(headerKey) as! FewListHeaderFooter
-				view.updateWithElement(header)
+				view.updateWithElement(header, parent: parentForHeaderFooter(view))
 				return view
 			}
 		}

		return result
	}
	
	// MARK: UITableViewDelegate
	
	@objc func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

private class FewListHeaderFooter: UITableViewHeaderFooterView {
	private var realizedElement: RealizedElement?
	
	func updateWithElement(element: Element, parent: RealizedElement) {
		if let realizedElement = realizedElement {
			if element.canDiff(realizedElement.element) {
				element.applyDiff(realizedElement.element, realizedSelf: realizedElement)
			} else {
				realizedElement.remove()
				
				self.realizedElement = element.realize(parent)
			}
		} else {
			realizedElement = element.realize(parent)
		}
	}
