move removeMessageObserver to dealloc rather than viewDidDisappear