generalize prepare_callback