Some more work with the base classes and overall structure