public function getRemoteObject($key, $interface = null)
	{
		if ($interface) {
			if (
				$this->logger !== null &&
				$this->logger->isHandling(\Monolog\Logger::DEBUG)
			) {
				$this->logger->addDebug(
					'Create new virtual remote object proxy',
					array(
						 'interface' => $interface,
						 'path'      => $key
					)
				);
			}

			return RemoteObjectProxyGenerator::generate($this, $interface, $key);
		}
		else {
			if (
				$this->logger !== null &&
				$this->logger->isHandling(\Monolog\Logger::DEBUG)
			) {
				$this->logger->addDebug(
					'Get remote object proxy',
					array(
						 'path' => $key
					)
				);
			}

			return new RemoteObjectProxy($this, $key);
		}
	}