type system WIP II