1. An object-oriented software application for receiving updates that change state of an object model and reporting those updates to requesting users comprising: a database application for storing data; an object model driver for writing updates into the database; a notification system for notifying about the updates; and a plurality of external monitors for reading updates; characterized in that the object model produces multiple temporal snapshots of itself in co-currency with received events, each snapshot containing associated update information from an associated event and whereupon at the time of occurrence of each snapshot coinciding with an event the notification system notifies the appropriate external monitor or monitors, which in turn access the appropriate snapshot, performs calculations thereupon and renders the information accessible to the users.