     internal var title: String?
 }
 
+class EqualableItem: TestReloadItem, Equatable {
+    
+    init(title: String) {
+        super.init()
+        self.title = title
+    }
+    
+    public static func ==(lhs: EqualableItem, rhs: EqualableItem) -> Bool {
+        return lhs.title == rhs.title
+    }
+}
+
 class StatefulSection: HeaderFooterTitleSection, StaticStateful {
     
     enum State {

        expect(cell.textLabel?.text).to(equal(item.title))
        
        item.title = "After"
        cell = tableViewManager.tableView(tableViewManager.tableView, cellForRowAt: indexPath)
        
        expect(cell.textLabel?.text).to(equal(item.title))

    
    func testNotEqualItem() {
        
        let item1 = EqualableItem(title: "Item1")
        let item2 = EqualableItem(title: "Item2")
        
        XCTAssert(item1.equals(item2) == false)
    }
    
    func testEqualItem() {
        
        let item1 = EqualableItem(title: "Item1")
        let item2 = EqualableItem(title: "Item1")
        
        XCTAssert(item1.equals(item2))
    }
    
    func testRetainCycle() {
