implementing map generation