From the POV of the UI code, these should behave exactly the same. it may take a bit of refactoring to separate out the plot logic (moving/cancelling/pausing) from the transport layer.