add cancel to return type