Adding an ISCancelable protocol and adopting this in the ISCancelToken.