Abstract classes for domain modeling.