protected function parseSections()
    {
        foreach (array_keys($this->sections) as $section) {

            // section headers
            $header = new HeaderFilter($this->rawData);
            $header->setFilter($section);
            $headerData = $header->toArray();
            $headerData = array_shift($headerData);

            // skip section if no headers found
            if (empty($headerData)) {
                $this->log->debug("No header for section $section");
                continue;
            }

            // save header separately
            $this->results->append(
                $this->scrubKey("{$section}_header"),
                $headerData
            );

            // section data
            $data = new SectionDataFilter($this->rawData);
            $data->setFilter($section);
            $data->setHeader($headerData);
            $this->results->append(
                $this->scrubKey($section),
                $data
            );
            $this->log->debug("Parsed section '{$this->scrubKey($section)}'");
        }
    }