public function createSubdirectory($name, array $filter = array())
    {

        try {
            // query whether or not the passed directory is relative or absolute
            if ($this->containsScheme($name)) {
                $this->setAttribute($this->stripSchema($name), '.');
            } else {
                // if the directory is relative, append it
                if ($directory = $this->getDirectory()) {
                    $directory = $this->appendDirectory($name);
                } else {
                    $this->setDirectory($directory = $name);
                }
                // bind the default value
                $this->bind($directory, '.');
            }

            // return the instance itself
            return $this;

        } catch (\Exception $e) {
            throw new NamingException(sprintf('Can\'t create subdirectory %s', $name), null, $e);
        }
    }