add map, fix bugs