added abstract entity class
cleaned up