refactoring with a view to making per field feedback easier to implement