     class func attributesForLookupDict(lookupDict: [String: AnyObject]) -> TextAttributes? {
         var attributes = TextAttributes()
         let flatDict = flatLookupDict(lookupDict)
-        if let fontName = flatDict[Key.fontName] as? String,
+        if let familyName = flatDict[Key.familyName] as? String {
+            attributes[UIFontDescriptorFamilyAttribute] = familyName
+            if let weight = flatDict[Key.weight] as? CGFloat {
+                let validWeight = weight.validWeight
+                let traits = [UIFontWeightTrait: validWeight]
+                attributes[UIFontDescriptorTraitsAttribute] = traits
+            }
+        } else if let fontName = flatDict[Key.fontName] as? String,
             let fontSize = flatDict[Key.fontSize] as? CGFloat,
             let font = UIFont(name: fontName, size: fontSize)
         {

    }
    
}

    
    struct Key {
        static let fontName = "fontName"
        static let familyName = "familyName"
        static let fontSize = "fontSize"
        static let textColor = "textColor"
        static let weight = "weight"
    }
    
    private static let styledTextPlist = "StyledText"
