added abstract entity and ENtityManager