code: function() {
  
  		var property_container = this._value_container.getValue(),
  			value = null,
  			is_connected = false;
  
  		if (property_container != null) {
  
  			// Collection implements Properties, so if _property_name is not a number - then `get` will be called
  			if (property_container.isCollection && /^\d+$/.test(this._property_name)) {
  
  				if (this._enumerable_changed_listener == null) {
  
  					this._enumerable_changed_listener = property_container.on('collection_changed', this.onValueChanged, this);
  					this._property_container = property_container;
  
  				}
  
  				value = property_container.getValueAt(+this._property_name);
  
  			} else if (property_container.isProperties) {
  
  				if (this._property_changed_listener == null) {
  
  					this._property_changed_listener = property_container.onPropertyChanged(this._property_name, this.onValueChanged, this);
  					this._property_container = property_container;
  
  				}
  
  				value = property_container.get(this._property_name);
  
  			} else {
  
  				value = property_container[this._property_name];
  
  			}
  
  			is_connected = true;
  
  		}
  
  		if (value !== this._value || this._is_connected != is_connected) {
  
  			this._value = value;
  			this._is_connected = is_connected;
  
  			this._fire('changed');
  
  		}
  
  	}
docs: Get `_property_container` from `_value_container`, and get `_property_name` from `_property_container`