improving type checking