Also why would anyone store a boolean named isDone rather than just returning it as the contract of the function