add map generation