adding pickling version of operation