use marshal and unmarshal
merge