completed typecheck