Refactor: Move type binding checking into separate class