add a merge function