Doesn't this imply side-effect just the same way? It's another layer of abstraction, but a side-effect relying abstraction.