finished implementing deftype