add map & fix some bugs