added an interface that entities can implement