Get every thing type checking

This started off as a task to remove the hacks i put in place to work
around some of the namespacing bugs but quickly snowballed into a
massive ammount of work getting everything to type check

per issue #23