added the ability to specify cancellability