 		data.bindings[prop]?.destroy()
 
 		if binding?
-			data.bindings[prop] = new Binding @, prop, binding, extraResultFunc
+			if not extraResultFunc and isSimpleBinding(binding)
+				data.bindings[prop] = new SimpleBinding @, prop, binding
+			else
+				data.bindings[prop] = new Binding @, prop, binding, extraResultFunc
 		return

				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

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

			# update
