implemented ofi save & update