public function grabInFromRepositoryFirstRecordsOrderedByMatching($variable, $repo, $limitAndOffset = null, $orderBy = null, YamlStringNode $criteria = null)
    {
        //support to use "limit:offset"
        if (strpos($limitAndOffset, ':') !== false) {
            list($limit, $offset) = explode(':', $limitAndOffset);
        } else {
            $limit = $limitAndOffset;
            $offset = null;
        }
        // support field:ORDER, eg. name:ASC
        if (is_string($orderBy)) {
            list($field, $order) = explode(':', $orderBy);
            $orderBy = [$field => $order];
        }
        $records = $this->getDoctrine()
                        ->getRepository($repo)
                        ->findBy($criteria ? $criteria->toArray() : [], $orderBy, $limit, $offset);
        $this->storage->setValue($variable, $records);
    }