~
add tests
event emitter tests
channel tests