updated TypeCheck