refactored field names generation