Move field-specific logic to field partial