Extracted DirtifiableObject base class. noted a couple of bugs in TODO.md