Refactoring common field component behaviours