 		# Select first available dimensions
 		if selectedSku
 			for dimension in undefinedDimensions
-				selectDimension(renderer.selectItemDimensionInput(dimension))
-
-		updatePrice(selectedSku, options, context)
+				renderer.selectDimension(dimension)
+
+		renderer.updatePrice(selectedSku)
 
 	# Handles submission in the warn unavailable form
 	warnUnavailableSubmitHandler = (e) ->
 		e.preventDefault()
-		options.selectors.warnUnavailable(context).find('#notifymeLoading').show()
-		options.selectors.warnUnavailable(context).find('form').hide()
+		renderer.select.warnUnavailable().find('#notifymeLoading').show()
+		renderer.select.warnUnavailable().find('form').hide()
 		xhr = options.warnUnavailablePost(e.target)
-		xhr.done -> options.selectors.warnUnavailable(context).find('#notifymeSuccess').show()
-		xhr.fail -> options.selectors.warnUnavailable(context).find('#notifymeError').show()
-		xhr.always -> options.selectors.warnUnavailable(context).find('#notifymeLoading').hide()
+		xhr.done -> renderer.select.warnUnavailable().find('#notifymeSuccess').show()
+		xhr.fail -> renderer.select.warnUnavailable().find('#notifymeError').show()
+		xhr.always -> renderer.select.warnUnavailable().find('#notifymeLoading').hide()
 		return false
 
 
 	# Binds handlers
-	options.selectors.buyButton(this)
+	renderer.select.buyButton()
 		.click(buyButtonHandler)
 
 	for dimension in selector.dimensions


	# Instantiate our singleton
	selector = new SkuSelector(productData)
	renderer = new SkuSelectorRenderer(this)

	# Finds elements and puts SKU information in them
	renderer.renderSkuSelector(selector)

			.change(dimensionChangeHandler)

	if options.warnUnavailable
		renderer.select.warnUnavailable().find('form')
			.submit(warnUnavailableSubmitHandler)

	# Select first dimension
	if options.selectOnOpening or selector.findSelectedSku()
		renderer.selectDimension(selector.dimensions[0])

	# Chaining
	return this
