start work on typesystem
more type rework
more type rework