I think having a generic Event class would be an extension of the callback mechanism. Instead of having a fixed set of endpoints for executing callbacks such as when the iteration begins, the trainer emits events at various timings (that can be modified by the user) which result in the cal...