Partially changed the type system.