     }
 }
 
+public func ==<Builder: ComponentBuilderType>(lhs: Builder, rhs: Builder) -> Bool {
+    return lhs.name == rhs.name
+}
+
+// MARK: Component Target
+
 public typealias ManuallyFittingHeightResolver = (fittingWidth: CGFloat, childrenHeights: [CGFloat], metrics: LayoutMetrics) -> CGFloat
 
-public class ComponentTarget: Hashable {
+public class ComponentTarget {
     public let name: String
 
     let targetClass: AnyClass

    }
}

public func ==(lhs: ComponentTarget, rhs: ComponentTarget) -> Bool {
    return lhs.name == rhs.name
}
    // TODO: need to make this API more clearly
    // used only for calculating cell's height manually
    private(set) var heightResolver: ManuallyFittingHeightResolver?

    public init(name: String, targetClass: AnyClass = UIView.self, nibName: String? = nil) {
        self.name = name
