use cancel with arg calculation