start work on base classes