initial implementation of base class