         guard let info = dictionary[Message.Body.Key.info] as? [String: Any] else {
             return nil
         }
-        let depth = info[Button.Info.depth] as? Int
+        let depth = info[Button.Info.depth] as? Int ?? 0
+        let textStyleType = TextStyleType(rawValue: depth)
+
+        let size = info[Button.Info.size] as? Int ?? 0
+        let textSizeType = TextSizeType(rawValue: size)
+
         let ordered = info[Button.Info.ordered] as? Bool
 
-        return Button.Info.init(depth: depth, ordered: ordered)
+        return Button.Info(textStyleType: textStyleType, textSizeType: textSizeType, ordered: ordered)
     }
 }
 

                    return 13
                case .comment:
                    return 14
                case .smallTextSize:
                    return 15
                case .bigTextSize:
                    return 16
                case .superscript:
                    return 17
                case .subscript:

        struct Info {
            static let ordered = "ordered"
            static let depth = "depth"
            static let size = "size"

            let textStyleType: TextStyleType?
            let textSizeType: TextSizeType?
            let ordered: Bool?

        }
