refactoring required fields