Move all types to their own module
All specifying varname, and fix bugs
Refactor checks and vars
Add config hash
Write vars to makefile in order
Fix versioning