improve map generation