message processor and tests