autoload, start with base classes for domain driven design