add typechecker