refactory to MsgProcesser Abstract