Major refactoring of Typing (3)