added message handler hierarchy