extract MessageProcessor triat to support extensible feature in the furture