def selected(zelf, *args, **kwargs):
    """ list of desired objects. """
    if args:
        parsed = args[0]
    else:
        parsed = zelf.parsed
    if not parsed.args:
        return []
    if 'exclude' in kwargs:
        exclude = kwargs['exclude']
    else:
        exclude = None
    if 'exclude' in parsed.args:
        parsed.args.remove(exclude)
    if 'time' in parsed.wanted:
        kwargs['time'] = parsed.wanted.time
    objs = []
    result = []
    nr = -1
    for obj in zelf.objects(**kwargs):
        nr += 1
        if not obj.check_wanted(parsed.wanted):
            continue
        if not obj.selector(parsed.args):
            continue
        if obj.check_notwanted(parsed.not_wanted):
            continue
        if 'uniq' in parsed.switch:
            if obj[parsed.switch['uniq']] in result:
                continue
            else:
                result.append(obj[parsed.switch['uniq']])
        if 'index' in parsed and nr == parsed.index:
            return [obj]
        objs.append(obj)
    return objs
