add map

complete
fix test