diff --git a/golden/go/diffstore/common/common.go b/golden/go/diffstore/common/common.go
index 3bce304..e66ac88 100644
--- a/golden/go/diffstore/common/common.go
+++ b/golden/go/diffstore/common/common.go
@@ -7,6 +7,7 @@
 	"io"
 	"os"
 	"path"
+	"strings"
 
 	"github.com/boltdb/bolt"
 	"go.skia.org/infra/go/fileutil"
@@ -18,6 +19,10 @@
 const (
 	// IMG_EXTENSION is the default extension of images.
 	IMG_EXTENSION = "png"
+
+	// DiffImageSeparator is the character that separates two image ids in the
+	// resulting diff image.
+	DiffImageSeparator = "-"
 )
 
 // SaveFile writes the given file to disk.
@@ -96,3 +101,26 @@
 	}
 	return s
 }
+
+// Takes two image IDs and returns a unique diff ID.
+// Note: DiffID(a,b) == DiffID(b, a) holds.
+func DiffID(left, right types.Digest) string {
+	_, _, diffID := getOrderedDiffID(left, right)
+	return diffID
+}
+
+// Inverse function of DiffID.
+// SplitDiffID(DiffID(a,b)) deterministically returns (a,b) or (b,a).
+func SplitDiffID(diffID string) (types.Digest, types.Digest) {
+	imageIDs := strings.Split(diffID, DiffImageSeparator)
+
+	return types.Digest(imageIDs[0]), types.Digest(imageIDs[1])
+}
+
+func getOrderedDiffID(left, right types.Digest) (types.Digest, types.Digest, string) {
+	if right < left {
+		// Make sure the smaller digest is left imageID.
+		left, right = right, left
+	}
+	return left, right, string(left) + DiffImageSeparator + string(right)
+}
diff --git a/golden/go/diffstore/mapper/mapper_test.go b/golden/go/diffstore/common/common_test.go
similarity index 97%
rename from golden/go/diffstore/mapper/mapper_test.go
rename to golden/go/diffstore/common/common_test.go
index 23e6db3..3418a73 100644
--- a/golden/go/diffstore/mapper/mapper_test.go
+++ b/golden/go/diffstore/common/common_test.go
@@ -1,4 +1,4 @@
-package mapper
+package common
 
 import (
 	"testing"
diff --git a/golden/go/diffstore/mapper/mapper.go b/golden/go/diffstore/mapper/mapper.go
index 5417c2e..99eadb3 100644
--- a/golden/go/diffstore/mapper/mapper.go
+++ b/golden/go/diffstore/mapper/mapper.go
@@ -2,7 +2,6 @@
 
 import (
 	"image"
-	"strings"
 
 	"go.skia.org/infra/go/util"
 	"go.skia.org/infra/golden/go/types"
@@ -28,32 +27,3 @@
 	// diff metric and have a different interface for the disk storing.
 	ImagePaths(id types.Digest) (string, string)
 }
-
-const (
-	// DiffImageSeparator is the character that separates two image ids in the
-	// resulting diff image.
-	DiffImageSeparator = "-"
-)
-
-// Takes two image IDs and returns a unique diff ID.
-// Note: DiffID(a,b) == DiffID(b, a) holds.
-func DiffID(left, right types.Digest) string {
-	_, _, diffID := getOrderedDiffID(left, right)
-	return diffID
-}
-
-// Inverse function of DiffID.
-// SplitDiffID(DiffID(a,b)) deterministically returns (a,b) or (b,a).
-func SplitDiffID(diffID string) (types.Digest, types.Digest) {
-	imageIDs := strings.Split(diffID, DiffImageSeparator)
-
-	return types.Digest(imageIDs[0]), types.Digest(imageIDs[1])
-}
-
-func getOrderedDiffID(left, right types.Digest) (types.Digest, types.Digest, string) {
-	if right < left {
-		// Make sure the smaller digest is left imageID.
-		left, right = right, left
-	}
-	return left, right, string(left) + DiffImageSeparator + string(right)
-}
diff --git a/golden/go/diffstore/mem_diffstore.go b/golden/go/diffstore/mem_diffstore.go
index c59bf5e..3566109 100644
--- a/golden/go/diffstore/mem_diffstore.go
+++ b/golden/go/diffstore/mem_diffstore.go
@@ -178,7 +178,7 @@
 					wg.Done()
 					<-d.maxGoRoutinesCh
 				}()
-				id := mapper.DiffID(mainDigest, right)
+				id := common.DiffID(mainDigest, right)
 				ret, err := d.diffMetricsCache.Get(priority, id)
 				if err != nil {
 					sklog.Errorf("Unable to calculate diff for %s. Got error: %s", id, err)
@@ -220,7 +220,7 @@
 	}
 	removeKeys := make([]string, 0, len(digests))
 	for _, key := range m.diffMetricsCache.Keys() {
-		d1, d2 := mapper.SplitDiffID(key)
+		d1, d2 := common.SplitDiffID(key)
 		if digestSet[d1] || digestSet[d2] {
 			removeKeys = append(removeKeys, key)
 		}
@@ -300,7 +300,7 @@
 			}
 
 			// Extract the left and right image digests.
-			leftImgDigest, rightImgDigest := mapper.SplitDiffID(imgID)
+			leftImgDigest, rightImgDigest := common.SplitDiffID(imgID)
 
 			// Make sure both files exist.
 			for _, imgDigest := range []types.Digest{leftImgDigest, rightImgDigest} {
@@ -362,7 +362,7 @@
 // diffMetricsWorker calculates the diff if it's not in the cache.
 func (d *MemDiffStore) diffMetricsWorker(priority int64, id string) (interface{}, error) {
 	defer metrics2.FuncTimer().Stop()
-	leftDigest, rightDigest := mapper.SplitDiffID(id)
+	leftDigest, rightDigest := common.SplitDiffID(id)
 
 	// Load it from disk cache if necessary.
 	if dm, err := d.metricsStore.LoadDiffMetrics(id); err != nil {
@@ -409,7 +409,7 @@
 	for _, left := range leftDigests {
 		for _, right := range rightDigests {
 			if left != right {
-				diffIDsSet[mapper.DiffID(left, right)] = true
+				diffIDsSet[common.DiffID(left, right)] = true
 			}
 		}
 	}
diff --git a/golden/go/diffstore/mem_diffstore_test.go b/golden/go/diffstore/mem_diffstore_test.go
index ab625d1..c5e99fa 100644
--- a/golden/go/diffstore/mem_diffstore_test.go
+++ b/golden/go/diffstore/mem_diffstore_test.go
@@ -12,7 +12,7 @@
 	"go.skia.org/infra/go/tiling"
 	"go.skia.org/infra/go/timer"
 	"go.skia.org/infra/golden/go/diff"
-	"go.skia.org/infra/golden/go/diffstore/mapper"
+	"go.skia.org/infra/golden/go/diffstore/common"
 	"go.skia.org/infra/golden/go/diffstore/mapper/disk_mapper"
 	d_utils "go.skia.org/infra/golden/go/diffstore/testutils"
 	"go.skia.org/infra/golden/go/types"
@@ -77,7 +77,7 @@
 	for _, d1 := range digests {
 		for _, d2 := range digests {
 			if d1 != d2 {
-				id := mapper.DiffID(d1, d2)
+				id := common.DiffID(d1, d2)
 				diffIDs = append(diffIDs, id)
 				assert.True(t, memDiffStore.diffMetricsCache.Contains(id))
 			}
@@ -94,7 +94,7 @@
 
 		// Load the diff from disk and compare.
 		for twoDigest, dr := range found {
-			id := mapper.DiffID(oneDigest, twoDigest)
+			id := common.DiffID(oneDigest, twoDigest)
 			loadedDr, err := memDiffStore.metricsStore.LoadDiffMetrics(id)
 			assert.NoError(t, err)
 			assert.Equal(t, dr, loadedDr, "Comparing: %s", id)
@@ -183,7 +183,7 @@
 	assert.NoError(t, err)
 	memDiffStore := diffStore.(*MemDiffStore)
 
-	diffID := mapper.DiffID(types.Digest("abc"), types.Digest("def"))
+	diffID := common.DiffID(types.Digest("abc"), types.Digest("def"))
 	diffMetrics := &d_utils.DummyDiffMetrics{
 		NumDiffPixels:     100,
 		PercentDiffPixels: 0.5,
diff --git a/golden/go/diffstore/metricsstore/bolt_metricsstore/bolt_metricsstore.go b/golden/go/diffstore/metricsstore/bolt_metricsstore/bolt_metricsstore.go
index 331cb08..2bfbd2a 100644
--- a/golden/go/diffstore/metricsstore/bolt_metricsstore/bolt_metricsstore.go
+++ b/golden/go/diffstore/metricsstore/bolt_metricsstore/bolt_metricsstore.go
@@ -11,7 +11,6 @@
 	"go.skia.org/infra/go/util"
 	"go.skia.org/infra/golden/go/diff"
 	"go.skia.org/infra/golden/go/diffstore/common"
-	"go.skia.org/infra/golden/go/diffstore/mapper"
 	"go.skia.org/infra/golden/go/types"
 )
 
@@ -98,7 +97,7 @@
 	factoryCodec := &metricsRecFactory{
 		LRUCodec: util.JSONCodec(&metricsRec{}),
 		splitFn: func(toSplit string) (string, string) {
-			a, b := mapper.SplitDiffID(toSplit)
+			a, b := common.SplitDiffID(toSplit)
 			return string(a), string(b)
 		},
 	}
@@ -228,7 +227,7 @@
 		newRec = legRec.DiffMetrics
 	}
 	// Regenerate the diffID to filter out the old format.
-	newID := mapper.DiffID(mapper.SplitDiffID(id))
+	newID := common.DiffID(common.SplitDiffID(id))
 
 	// Write the new record to the database in the background.
 	go func() {
diff --git a/golden/go/validation/validation.go b/golden/go/validation/validation.go
index aed72d2..d371f3c 100644
--- a/golden/go/validation/validation.go
+++ b/golden/go/validation/validation.go
@@ -3,7 +3,7 @@
 import (
 	"strings"
 
-	"go.skia.org/infra/golden/go/diffstore/mapper"
+	"go.skia.org/infra/golden/go/diffstore/common"
 )
 
 // IsValidDigest returns true if the given string is a valid digest
@@ -29,7 +29,7 @@
 
 // IsValidDiffImgID returns true if the given diffImgID is in the correct format.
 func IsValidDiffImgID(diffID string) bool {
-	imageIDs := strings.Split(diffID, mapper.DiffImageSeparator)
+	imageIDs := strings.Split(diffID, common.DiffImageSeparator)
 	if len(imageIDs) != 2 {
 		return false
 	}
