now possible to cancel at any point (added a test)