 }
 
 public struct Component<T: UIView>: ComponentType {
-    public let styles: [AnyStyle]
+    public let styles: Set<AnyStyle>
     let children: [ChildComponent]
     
     public init() {
         self.init(styles: [], children: [])
     }
     
-    init(styles: [AnyStyle], children: [ChildComponent]) {
+    init(styles: Set<AnyStyle>, children: [ChildComponent]) {
         self.styles = styles
         self.children = children
     }

    }
    
    public func add<S: StyleType>(styles: [S]) -> Component<T> {
        return Component<T>(styles: self.styles + styles.map(AnyStyle.init), children: children)
    }
    
    public func configure(view: T) {

        self.access = { view in access(view as! T) }
    }
    
    var styles: Set<AnyStyle> {
        return component.styles
    }
    
