Added abstract base Entity class