emit more events and refactor
bump version