 
 extension String {
 
-    fileprivate var propertyNameFromValue: String {
-        return String(self.characters.dropLast()) // TODO: better propertyNameFromValue
+    fileprivate var singularForm: String {
+        return String(self.characters.dropLast()) // TODO: better singularForm
     }
 
     fileprivate var type: String {
-        return self.capitalized.components(separatedBy: "_").joined(separator: "")
+        return self.capitalized.components(separatedBy: "_").joined(separator: "") // TODO: better type
     }
 
     fileprivate var propertyName: String {

        case let .array(_, values):
            return values.first?.structCode(indentation: indentation) ?? ""
        default:
            break
        }
        return ""
    }
}


extension Value {

    fileprivate var type: String {
        switch self {
        case let .null(optionalValue):
            if let value = optionalValue {
