Removes interface, integrates into abstract base class, method privacy adjustements