Creating a type system