Made the cancel action stop the visual timer and extracted the cancel logic to a method