add map iterator