         type-fields (:type-fields definition)
         fields (create-type-system-fields type-fields)]
     [name {:name name
-           :kind :OBJECT
+           :kind :INPUT_OBJECT
            :fields fields}]))
 
 (defn create-type-system-union [definition]
   (let [name (:name definition)
         fields (:type-fields definition)]
     [name {:name name
-           :kind :OBJECT
+           :kind :UNION
            :fields fields}]))
 
 (defn create-type-system-interface [definition]

        types ((type-system-type-definitions :type) definitions)
        interfaces ((type-system-type-definitions :interface) definitions)
        unions ((type-system-type-definitions :union) definitions)
        inputs ((type-system-type-definitions :input) definitions)]
    (println types)
    {:types (into {} types)
     :interfaces (into {} interfaces)
     :unions (into {} unions)
     :inputs (into {} inputs)}))




        type-fields (:type-fields definition)
        fields (create-type-system-fields type-fields)]
    [name {:name name
           :kind :INTERFACE
           :fields fields}]))

(defn create-type-system-enum [definition]
  (let [name (:name definition)
        enum-fields (:enum-fields definition)
        fields (create-type-system-fields enum-fields)]
    [name {:name name
           :kind :ENUM
           :fields (create-type-system-fields enum-fields)}]))

(defn create-type-system-definition [definition]
  (let [type (:type-system-type definition)]
