why is this object defined twice? if there is common functionality, then the object should be part of a base class