moved merge_with out from under the protected keyword so it would be
callable from the object directly