Changed ETObject from an interface to an abstract class