refactor field lookup