Move cancel into the service, comments and better exception handeling
condence code a bit
merge cancel_refactor