some base classes as tools