 
 import UIKit
 
-public class TableViewController<ContentType>: UITableViewController, CellsControllerProtocol {
+public class TableViewController: UITableViewController, CellsControllerProtocol {
 
     private var heightCache: [NSIndexPath: CGFloat] = [:]
 
     private var cellsObjectsCreators: [String: ViewsGenerator<UITableViewCell>] = [:]
 
     private let cellCreationType: CellCreationType
+
+    private static let creationTypeKey = "CellCreationType"
 
     // MARK: - Initialization
 

    }

    public required init?(coder aDecoder: NSCoder) {
        if let cellCreationType = CellCreationType(rawValue: aDecoder.decodeIntegerForKey("CellCreationType")) {
            self.cellCreationType = cellCreationType
            super.init(coder: aDecoder)
        } else {


    public override func encodeWithCoder(aCoder: NSCoder) {
        super.encodeWithCoder(aCoder)
        aCoder.encodeInteger(cellCreationType.rawValue, forKey: TableViewController.creationTypeKey)
    }

    /**
