     }
 
     fileprivate func commonInit() {
-        let view = View.init()
-        self.contentView.addAndConstrain(view)
-        self.nestedView = view
+        self.nestedView = View()
     }
 
     public private(set) var isSetup = false

        return (cell, cell.nestedView)
    }

    public fileprivate(set) weak var nestedView: View!

    override public init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)

        return (view, view.nestedView)
    }

    public weak var nestedView: View! {
        willSet {
            guard let view = self.nestedView else { return }
            view.removeFromSuperview()
        }
        didSet {
            self.contentView.addAndConstrain(self.nestedView)
        }
    }

    override public init(reuseIdentifier: String?) {
        super.init(reuseIdentifier: reuseIdentifier)
