 }
 
 extension String {
-    public func singularForm(meta: Meta) -> String {
+    func singularForm(meta: Meta) -> String {
         return singularForm(arrayObjectMap: meta.arrayObjectMap)
     }
-    public func singularForm(arrayObjectMap: [String: String]) -> String { // TODO: better singularForm
+    func singularForm(arrayObjectMap: [String: String]) -> String { // TODO: better singularForm
         if let name = arrayObjectMap[self] {
             return name
         } else {

}

extension Value {
    public var type: String {
        switch self {
        case .empty:
            return "Any"

        }
    }

    var type: String { // TODO: better type
        return self.components(separatedBy: "_").map({ $0.capitalizingFirstLetter() }).joined().capitalizingFirstLetter()
    }

    func propertyName(meta: Meta) -> String {
        if let propertyName = meta.propertyMap[self] {
            return propertyName
        } else if Meta.swiftKeywords.contains(self) {
