each callback is available to itself only