I went with this route because merge was not idempotent