add map listener