start of type checking work (WIP)