protect against double callback