exposing cancel internally