simplify type system