refactored
returns unsubscribe function
build
version 1.1