refactored field mapping as immutable