private function load()
    {
        if ($this->loaded) {
            return $this;
        }

        if (0 == count($this->dirs)) {
            return $this;
        }

        $loaderResolver = new LoaderResolver(array(
            new YamlLoader()
        ));
        $loader = new DelegatingLoader($loaderResolver);

        $finder = new Finder();
        $finder->files()->in($this->dirs)->name('schemas.yml');

        foreach ($finder as $file) {
            $schemas = $loader->load((string)$file);
            foreach ($schemas as $schema) {
                $this->addSchema($schema);
            }
        }

        $this->loaded = true;

        return $this;
    }