Adding #map

Also adding chai-spies for making sure callbacks are not called and then
cleaning up the zip code to make sure it's only called if both futures
succeed