create abstract class for field