private function _initOne($property, $method, $mode) {
		$data = $this->__call($method);
		
		if ($data === null) {
			return;
		}

		if ($data instanceof Collection) {
			if ($mode !== self::MODE_CASCADE_MANY) {
				throw new Exception('Model hasn\'t a parental collection');
			}

			$this->_data[$property] = $data;

			return;
		}

		if ($mode === self::MODE_JOIN) {
			if ($data instanceof Model) {
				$data = $data->toArray();
			}

			if (! is_array($data)) {
				throw new Exception('Unsupported type "' . gettype($data) . '" provided by "' . $method . '()"');
			}

			$this->_data += $data;
		}
		else if ($mode === self::MODE_CASCADE) {
			$this->_data[$property] = $data;
		}
		else if ($mode === self::MODE_CASCADE_MANY) {
			throw new Exception('Unable to use a model in the "Cascade many" mode');
		}
		else {
			throw new Exception('Uncnown loading mode');
		}
	}