added typeChecker infra