changed public interfaces, added helper methods to base class