- refactored maze generation to observer pattern and introduced MazePool