protected function process(array $data)
        {
            $config = array();

            foreach ($data as $section => $value) {
                if (Arrays::isArray($value)) {
                    if (strpos($section, $this->nestSeparator) !== false) {
                        $sections = explode($this->nestSeparator, $section);
                        $config = array_merge_recursive($config, $this->buildNestedSection($sections, $value));
                    } else {
                        $config[$section] = $this->processSection($value);
                    }
                } else {
                    $this->processKey($section, $value, $config);
                }
            }

            return $config;
        }