user callbacks and data cached