bug fixed: two callbacks