rework AbstractXXXProvider + Maze begin