cacher: callbacks and unit tests