graph LR subgraph "Framework - Abstract Layer" A[Entity
Abstract Base Class] B[Simulator~T~
Abstract Template Method] C[EntityReader~T~
Abstract] D[IEntityFactory~T~
Interface] end subgraph "Morg Specialisation - Concrete Layer" E[Morg
Concrete Entity] F[Dish
Concrete Simulator] G[MorgReader
Concrete Reader] H[MorgFactory
Concrete Factory] end A -->|inherits| E B -->|inherits| F C -->|inherits| G D -->|implements| H