make task more idempotent