WIP types
WIP continued work on types and code generation