add callback & reset event