For a start, you may want to consider using an Observer. Perhaps you
have a class called FlagObserver which provides the necessary methods
to create, read, etc flags for any other model object. The
FlagObserver class definition will in turn state what other models it
will observe (duh) and on which event(s).