refactored MessageQueueProcessor