add abstract Entity class