An observable object represents a feature to be audited. The observable object
provides a decentralized location that includes logic responsible for auditing
its own data. Should the audit detect a change in the data, a modifier object is
created, which includes modify logic to accommodate the change. The modifier object
is added to a pool of modifier objects, and at the appropriate time, one or more
observers retrieve the modifier object and run the modify logic.