 				options.selectors.warnUnavailable(context).show()
 
 		# Limpa classe de selecionado para todos dessa dimensao
-		options.selectors.itemDimensionInput(dimensionName, context).removeClass('checked sku-picked')
-		options.selectors.itemDimensionLabel(dimensionName, context).removeClass('checked sku-picked')
+		renderer.selectItemDimensionInput(dimensionName).removeClass('checked sku-picked')
+		renderer.selectItemDimensionLabel(dimensionName).removeClass('checked sku-picked')
 
 		# Coloca classes corretas em si
-		options.selectors.itemDimensionValueInput(dimensionName, dimensionValue, context).addClass('checked sku-picked')
-		options.selectors.itemDimensionValueLabel(dimensionName, dimensionValue, context).addClass('checked sku-picked')
-
-		skuSelectorObj.disableInvalidInputs(context, options.selectors)
+		renderer.selectItemDimensionValueInput(dimensionName, dimensionValue).addClass('checked sku-picked')
+		renderer.selectItemDimensionValueLabel(dimensionName, dimensionValue).addClass('checked sku-picked')
+
+		renderer.disableInvalidInputs(selector)
 
 		# Select first available dimensions
 		if selectedSku
 			for dimension in undefinedDimensions
-				selectDimension(options.selectors.itemDimensionInput(dimension, context))
+				selectDimension(renderer.selectItemDimensionInput(dimension))
 
 		updatePrice(selectedSku, options, context)
 

					.attr('data-value', value)
					.attr('value', valueSanitized)
					.attr('specification', valueSanitized)
					.attr('id', "#{@productId}_#{dimensionSanitized}_#{i}")
					.addClass("input-dimension-#{dimensionSanitized}")
					.addClass("sku-selector")
					.addClass("skuespec_#{valueSanitized}")
				skuList.find('label').text(value)
					.attr('for', "#{@productId}_#{dimensionSanitized}_#{i}")
					.addClass("dimension-#{dimensionSanitized}")
					.addClass("espec_#{dimensionIndex}")
					.addClass("skuespec_#{valueSanitized}")

				skuList.appendTo(dimensionList.find('.skuList'))

			dimensionList.appendTo(context.find('.dimensionLists'))

	disableInvalidInputs: (context, selectors) =>
		undefinedDimensions = @findUndefinedDimensions()
		selectableSkus = @findSelectableSkus()

		for dimension in undefinedDimensions
			# Disable all options in this row, add disabled class, remove checked class and matching removeAttr checked
			selectors.itemDimensionInput(dimension, context)
				.addClass('item_unavaliable')
				.removeClass('checked sku-picked')
				.attr('disabled', 'disabled')
				.removeAttr('checked')
			selectors.itemDimensionLabel(dimension, context)
				.addClass('disabled item_unavaliable')
				.removeClass('checked sku-picked')

			# Enable all selectable options in this row
			for value in @uniqueDimensionsMap[dimension]
				# Search for the sku dimension value corresponding to this dimension
				for sku in selectableSkus
					skuDimensionValue = sku.dimensions[dimension]
					# If the dimension value matches, enable the button
					if skuDimensionValue is value
						selectors.itemDimensionValueInput(dimension, value, context).removeAttr('disabled')
					# If the dimension value matches and this sku is available, show as selectable
					if skuDimensionValue is value and sku.available
						selectors.itemDimensionValueInput(dimension, value, context).removeClass('item_unavaliable')
						selectors.itemDimensionValueLabel(dimension, value, context).removeClass('disabled item_unavaliable')

#
# PLUGIN ENTRY POINT


	# Handler for the buy button
	buyButtonHandler = (event) =>
		selectedSku = selector.findSelectedSku()
		if selectedSku
			return options.addSkuToCart(selectedSku.sku, context)
		else
			options.selectors.warning(context).show().text('Por favor, escolha: ' + selector.findUndefinedDimensions()[0])
			return false

	# Handles changes in the dimension inputs
	dimensionChangeHandler = (event) ->
		dimensionName = $(this).attr('data-dimension')
		dimensionValue = $(this).attr('data-value')
		selector.setSelectedDimension(dimensionName, dimensionValue)
		selector.resetNextDimensions(dimensionName)
		selectedSku = selector.findSelectedSku()
		undefinedDimensions = selector.findUndefinedDimensions()

		options.selectors.warning(context).hide()
		options.selectors.warnUnavailable(context).filter(':visible').hide()
