Updated type system for Milestone 3