Requires route to return future

But that allows easy flatmapping for each different shift
simple changes