Add `map` implementation