'abstract method, add a "data point" from the state of `optim` into the
logger, the argument `optim` can be omitted if it was `register()`-ed before,
acts like an event handler'

def add(self, optim=None, more_data=[]):

    raise NotImplementedError()
