 }
 
 public struct TagInfo : Equatable {
-    let name: String
-    let attributes: [String: String]
-    var range: Range<Int>
+    public let name: String
+    public let attributes: [String: String]
+    public var range: Range<Int>
 }
 
 public func ==(lhs: TagInfo, rhs: TagInfo) -> Bool {

        return (attributedString, tagsInfo)
    }
    
    func buildAttributedString() -> NSAttributedString {
        return buildAttributedStringInternal().0
    }
    
    func buildAttributedStringAndTagsInfo() -> (NSAttributedString, [TagInfo]) {
        return buildAttributedStringInternal()
    }
    

}

public struct Atributika {
    public let text: String
    public let tags: [String: [Attribute]]
    public let baseAttributes: [Attribute]
    
    public init(text: String, tags: [String: [Attribute]] = [:], baseAttributes: [Attribute] = []) {
        self.text = text
        self.tags = tags
        self.baseAttributes = baseAttributes
