ideas for refactoring the Field class