add map implementation