add map & some modifications