Better type checker