message handler update