- change subcribe API
- adjust tests accordingly
- remove dead code