public function getContainer($name)
    {
        if (!($name instanceof KObjectIdentifier))
        {
            //Create the complete identifier if a partial identifier was passed
            if (is_string($name) && strpos($name, '.') === false)
            {
                $identifier = $this->getIdentifier()->toArray();
                $identifier['path'] = array('session', 'container');
                $identifier['name'] = $name;

                $identifier = $this->getIdentifier($identifier);
            }
            else $identifier = $this->getIdentifier($name);
        }
        else $identifier = $name;

        if (!isset($this->_containers[$identifier->name]))
        {
            $container = $this->getObject($identifier);

            if (!($container instanceof KUserSessionContainerInterface))
            {
                throw new UnexpectedValueException(
                    'Container: '. get_class($container) .' does not implement KUserSessionContainerInterface'
                );
            }

            //Load the container from the session
            $namespace = $this->getNamespace();
            $container->load($_SESSION[$namespace]);

            $this->_containers[$container->getIdentifier()->name] = $container;
        }
        else $container = $this->_containers[$identifier->name];

        return $container;
    }