docs: def _find_multiple(self, match_class, **keywds):
          """implementation details"""
          self._logger.debug('find all query execution - started')
          start_time = timeit.default_timer()
          norm_keywds = self.__normalize_args(**keywds)
          decl_matcher = self.__create_matcher(match_class, **norm_keywds)
          dtype = self.__findout_decl_type(match_class, **norm_keywds)
          recursive_ = self.__findout_recursive(**norm_keywds)
          allow_empty = self.__findout_allow_empty(**norm_keywds)
          decls = self.__findout_range(norm_keywds['name'], dtype, recursive_)
          found = matcher.find(decl_matcher, decls, False)
          mfound = mdecl_wrapper.mdecl_wrapper_t(found)
          self._logger.debug('%d declaration(s) that match query', len(mfound))
          self._logger.debug(
              'find single query execution - done( %f seconds )',
              (timeit.default_timer() - start_time))
          if not mfound and not allow_empty:
              raise RuntimeError(
                  "Multi declaration query returned 0 declarations.")
          return mfound