added and renamed some base classes