diff --git a/bob_box_utils/bob_box_utils.go b/bob_box_utils/bob_box_utils.go
new file mode 100644
index 0000000000000000000000000000000000000000..1fb51b9241839102854e91981ea581cf5ae7ca4c
--- /dev/null
+++ b/bob_box_utils/bob_box_utils.go
@@ -0,0 +1,39 @@
+package bob_box_utils
+
+import "sort"
+
+type ParcelDimensions struct {
+	Height float64 `json:"height"`
+	Width  float64 `json:"width"`
+	Length float64 `json:"length"`
+}
+
+// GetStackedParcelDimensions sorts the parcels so and stacks them
+func GetStackedParcelDimensions(parcels []ParcelDimensions) ParcelDimensions {
+	var totalParcelHeight, maxParcelWidth, maxParcelLength float64
+	// Stack the parcels
+	for _, parcel := range parcels {
+		parcelHeight, parcelWidth, parcelLength := SortDimensionsInIncreasingOrder(parcel.Height, parcel.Width, parcel.Length)
+
+		// To stack, sum all the heights
+		totalParcelHeight += parcelHeight
+
+		// Get the max width
+		if parcelWidth > maxParcelWidth {
+			maxParcelWidth = parcelWidth
+		}
+
+		//Get the max length
+		if parcelLength > maxParcelLength {
+			maxParcelLength = parcelLength
+		}
+	}
+	return ParcelDimensions{totalParcelHeight, maxParcelWidth, maxParcelLength}
+}
+
+// SortDimensionsInIncreasingOrder sorts the given dimensions in increasing order
+func SortDimensionsInIncreasingOrder(dim1, dim2, dim3 float64) (float64, float64, float64) {
+	dims := []float64{dim1, dim2, dim3}
+	sort.Float64s(dims)
+	return dims[0], dims[1], dims[2]
+}