private function get(string $tag, string $memberof = '', bool $grouped = true){
    if ( empty($this->parsed) ){
      $this->parse();
    }
    if ( !empty($this->parsed) ){
      $res = [];
      foreach ( $this->parsed as $p ){
        if (
          !empty($p['tags']) &&
          (($i = \bbn\x::find($p['tags'], ['tag' => $tag])) !== false) &&
          (
            (
              empty($memberof) &&
              (\bbn\x::find($p['tags'], ['tag' => 'memberof']) === false)
            ) ||
            (
              !empty($memberof) &&
              (($k = \bbn\x::find($p['tags'], ['tag' => 'memberof'])) !== false) &&
              ($p['tags'][$k]['name'] === $memberof)
            )
          )
        ){
          if ( $grouped ){
            $tmp = $p['tags'][$i];
            if ( $p['tags'][$i]['tag'] !== 'file' ){
              $tmp['description'] = $p['description'];
            }
            unset($p['tags'][$i], $tmp['tag']);
            $res[] = array_merge($tmp, $this->group_tags($p['tags']));
          }
          else {
            $res = array_map(function($t){
              unset($t['tag']);
              return $t;
            }, $p['tags']);
          }
        }
      }
      return $res;
    }
    return false;
  }