then I think one of the names needs to change or we risk confusing people; typically in our codebase *AbstractFoo implements Foo*