first commit

some base classes