refactor auto_reset event
manual_reset event