added base classes and simple test