change userstream to cancellationtokens