protected function processFilters($value, $index, $path)
    {
        $filterMatches = array();
        $filters = $this->getFilters();
        $filters->rewind();
        while($filters->valid() && !$this->impactLimitReached()) {
            $filter = $filters->current();
            $filters->next();
            if ($filter->execute($value) === true) {
                $filterMatches[] = $filter;
                $this->getLogger()->info(
                    'Match found on Filter ID '.$filter->getId(),
                    array($filter->toArray())
                );

                $report = new \Expose\Report($index, $value, $path);
                $report->addFilterMatch($filter);
                $this->reports[] = $report;

                $this->impact += $filter->getImpact();
            }
        }
        return $filterMatches;
    }