CachingProxy magically records usage of arbitrary objects and allows you to replay the same behavior later (with serializable representation that can be stored on disk)