override dispose method to clean up handlers and subscriptions