add option parse; add memory write