protected function resolveValue($name, $variables)
    {
        if (!empty($variables)) {
            foreach ($variables as $container => $vars) {
                foreach ($vars as $subname => $var) {
                    $value = $var['value'];

                    if(is_callable($value) && $var['name'] === $name) {
                        return $value($this->variables);
                    }

                    if (isset($var['name']) and $name == $value and isset($value)) {
                        return $value;
                    }
                    elseif (!isset($var['name']) and $subname == $name and isset($value)) {
                        return $value;
                    }
                }
            }
        }

        if (!isset($variables[$name])) {
            return false;
        }

        if (isset($variable['dataProvider'])) {
            $value = $this->resolveDataProviderValue($variable['dataProvider']);
            if (!$value) {
                return false;
            }
            return $value;
        }

        return array_get($variable, 'value', '');
    }