UML Diagram

UML diagram for a new design; all commits after this point will be
according to this design
Revert "UML Diagram"

This reverts commit 69d188ab066dad10febc60e0caa0e21ac8b3507a.
NPC changes

Minor changes to the NPC class