add tests
add emits
update version