add subscribe & unsubscribe handler