improved map generation