TODO
----

use sub attributes to declare methods in superclass as inheritable via is_a.

write tests

fix problems

