sml: start the DDD refactoring

- created a base class for types