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
Merge pull request #24 from traitorous/fix_type_errors

Get every thing type checking