 	@SIGNALS = ['pointerClicked', 'pointerPressed', 'pointerReleased',
 	            'pointerEntered', 'pointerExited', 'pointerWheel', 'pointerMove']
 
+	ALL_HANDLERS = utils.arrayToObject Item.SIGNALS, (_, val) ->
+		signal.getHandlerName val
+	, -> true
+	ALL_HANDLERS.onReady = true
+
+	DEEP_PROPERTIES =
+		anchors: true
+		animations: true
+
 	Binding = require './item/binding'
 	Anchors = require './item/anchors'
 	Animations = require('./item/animations') Scope

		expect(val).toBe.any Scope
		utils.defProp @, 'scope', 'e', val

	signal.createHandler @::, 'ready'

	for signalName in Item.SIGNALS
		signal.createHandler @::, signalName

	utils.defProp @::, 'parent', 'e', ->
		items[Impl.getItemParent @_uid]

		# animations
		@animations.initialize()

		Object.seal @

	createBindedSetter = (propName, setFunc) ->
		(val) ->
			if typeof val is 'string'
				# TODO: optimize it
				setImmediate =>
					binding = new Binding @, val
					Impl.setItemBinding @_uid, propName, binding
