type checker done