implemented map generation