 		s = @findSelectableSkus()
 		return if s.length is 1 then s[0] else undefined
 
-	resetNextDimensions: (dimensionName) =>
+	setSelectedDimension: (dimension, value) =>
+		@selectedDimensionsMap[dimension] = value
+
+	resetNextDimensions: (theDimension) =>
 		foundCurrent = false
-		for key of @selectedDimensionsMap
-			@selectedDimensionsMap[key] = undefined if foundCurrent
-			foundCurrent = true if key is dimensionName
+		for dimension of @dimensions
+			@setSelectedDimension(dimension, undefined) if foundCurrent
+			foundCurrent = true if dimension is theDimension
 
 	# Renders the DOM elements of the Sku Selector, given the context
 	renderSkuSelector: (context) =>

	dimensionChangeHandler = (event) ->
		dimensionName = $(this).attr('data-dimension')
		dimensionValue = $(this).attr('data-value')
		console.log 'Change dimension!', dimensionName, dimensionValue
		skuSelectorObj.selectedDimensionsMap[dimensionName] = dimensionValue
		console.log(skuSelectorObj.selectedDimensionsMap)
		skuSelectorObj.resetNextDimensions(dimensionName)
		selectedSku = skuSelectorObj.findSelectedSku()
		undefinedDimensions = skuSelectorObj.findUndefinedDimensions()

		@selectedDimensionsMap = {}
		@selectedDimensionsMap[dimension] = undefined for dimension in dimensions

		# Object of structure { dimension : [possibility] }
		@uniqueDimensionsMap = @findUniqueDimensions()

	findUniqueDimensions: =>
