Map is not needed here.
Raise shouldn’t be used in a normal flow, as it’s pretty expensive.

(for 1000 items, we got 120ms just for raising)
Performance improvements:
don’t dup everything, not needed anyway: 100ms/1000 items
don’t initiate the callbacks, not using them anyway: 140ms/1000items
Use each iso for loops.