add merge function