factor MessageServer to it's own (supporting) module