add in a generic _add_callback method