def _visit_handlers(handlers, visitor, prefix, suffixes):
    """ Use visitor partern to collect information from handlers """
    results = []
    for handler in handlers:
        for suffix in suffixes:
            func = getattr(handler, '{}_{}'.format(prefix, suffix).lower(),
                None)
            if func:
                results.append(visitor(suffix, func))
    return results
