 (defn get-feature
 	"looks first in the native frame, then abstractions, then specializations, returning the first found"
  [frame-name feature-name]
-	(println "x"  (frame-name frame-of) )
 	(cond (feature-name (:features (frame-name frame-of)) )
-		; look local
-		 (feature-name (:features (frame-name frame-of))) 
-		:t
-		; look in abstractions and specializations
-		(and 
-			:t
-			;; for the list of frames in the specializations list, try to get the feature there recursively
-			(map (fn [fr-name]  (get-feature fr-name feature-name))
-				 	(get-specializations frame-name )) 
-			(map (fn [fr-name]  (get-feature fr-name feature-name))
-				 	(get-abstractions frame-name ))
-)))
+			(feature-name (:features (frame-name frame-of))) 
+		  :t
+			(and 
+				(map (fn [fr-name] 	(get-feature fr-name feature-name))
+				 	(get-specializations frame-name ))
+				(map (fn [fr-name]  (get-feature fr-name feature-name))
+			 		(get-abstractions frame-name ))  )))
 
 (defn print-frame [frame-name]
 	(cond (and 


;; TODO 
;; - abstractions and specializatons are linked lists, you only go up or down one level and then that frame tells you the next level up/down
;;   - working on adding the abs when you add a spec, and vice-versa (see START HERE)
;; ------------ not getting both, crashes
;; - switch from defstructs to the new thing...records
;; - features not slots

(defstruct frame :name :features :specializations :abstractions)


								))  ))
				; specializations
				(cond (frame-of frame-name)
						(conj ((frame-of frame-name) :specializations 
							;(first stuff)
					 		(cond (empty? stuff) (list) :t (list (first stuff)))
						))
					:t 	(cond (empty? stuff) (list) :t (list (first stuff))))

				; abstractions
				(cond (frame-of frame-name)
						(conj ((frame-of frame-name) :abstractions 
							;(second stuff)
					 		(cond (empty? stuff) (list) :t (list (second stuff)))
						))
					:t 	(cond (empty? stuff) (list) :t (list (second stuff))))
))))

(defn get-specializations [frame-name]
	(:specializations (frame-of frame-name) ))
	;;(cond (not (nil? (frame-of frame-name))) ((frame-of frame-name) :specializations)))

(defn get-abstractions [frame-name]
