private function hydrateAll(array $files)
    {
        foreach ($files as $name => $file) {
            // Recursive protection
            if (!is_array($file)) {
                continue;
            }

            foreach ($file as $key => $value) {
                if (is_array($value)) {
                    // Recursive call
                    $files[$name] = call_user_func(array($this, __FUNCTION__), $files[$name]);
                } else {
                    $files[$name] = $this->hydrate($file);
                }
            }
        }

        return $files;
    }