add tests
bind events & add reset method