added emit & reset