Refactored field type into and abstract class in order to configure fields via its concrete implementations