starting to infer types
all unit types are replaced by objects
more type checking