remake MessageManager.registerProvider