first version base class