public function path($type, $path = null)
    {
        $instance = sprintf('path.%s', $type);
        $base = $this->basePath;

        // Verificar se foi instanciado um path diferente
        if (array_key_exists($instance, $this->instances)) {
            $base = $this->instances[$instance];
        }

        // Verificar se foi implementado em config
        $key = sprintf('paths.%s', strtolower($type));
        $base = config($key, $base);

        // Verificar se deve colocar a base
        if (substr($base, 0, 2) == './') {
            $base = $this->basePath . DIRECTORY_SEPARATOR . substr($base, 2);
        }

        // Verificar se deve adiconar type no path
        if ($base == $this->basePath) {
            $path = is_null($path) ? $type : $type . DIRECTORY_SEPARATOR . $path;
        }

        // Retornar
        return is_null($path) ? $base : $base . DIRECTORY_SEPARATOR . $path;
    }