better callback management