more work on type checker