 				args.push "return #{hash};"
 				cache[hash] = Function.apply null, args
 
-		# TODO: implement fast bindings [[item, prop]]
 		constructor: (@obj, @prop, binding, @extraResultFunc=null) ->
 			item = obj._ref or obj
-			Binding.prepare binding, item
 
 			# properties
 			@func = Binding.getFunc binding

			@child?.destroy()
			return

	class Binding
		@prepare = (arr, item) ->
			for elem, i in arr
				if isArray elem
					Binding.prepare elem, item
				else if elem is 'this'
					arr[i] = item
			null

		@getHash = do ->
			argI = 0


			# connections
			connections = @connections = []
			for elem in binding
				if isArray(elem)
					connections.push new Connection @, elem[0], elem[1]

			# update
