type checking finished