public function loop($hydratorset = null, $callback = null)
    {
        try {

            // get valid result
            $this->data = $this->searcher->getFields();

            foreach ($this->data as $key => $values) {
                // start build interface
                if (empty($values) === false) {
                    $this->{'set' . ucfirst($key)}();
                }
            }

            // execute query
            return $this->setResult($hydratorset, $callback);

        } catch (ExceptionFactory $e) {
            echo $e->getMessage();
        }
    }