[minor] add merge and implement put