modify cancel func