have most things working besides class hierarchy
trying to fix declaration