refactoring base class
update version