Search okcupid.com with the given parameters. Parameters are registered
    to this function through :meth:`~okcupyd.filter.Filters.register_filter_builder`
    of :data:`~okcupyd.html_search.search_filters`.

    :returns: A :class:`~okcupyd.util.fetchable.Fetchable` of
              :class:`~okcupyd.profile.Profile` instances.

    :param session: A logged in session.
    :type session: :class:`~okcupyd.session.Session`
    :param location: A location string which will be used to filter results.
    :param gender: The gender of the user performing the search.
    :param keywords: A list or space delimeted string of words to search for.
    :param order_by: The criteria to use for ordering results. expected_values:
                     'match', 'online', 'special_blend'

def SearchFetchable(session=None, **kwargs):
    """Search okcupid.com with the given parameters. Parameters are registered
    to this function through :meth:`~okcupyd.filter.Filters.register_filter_builder`
    of :data:`~okcupyd.html_search.search_filters`.

    :returns: A :class:`~okcupyd.util.fetchable.Fetchable` of
              :class:`~okcupyd.profile.Profile` instances.

    :param session: A logged in session.
    :type session: :class:`~okcupyd.session.Session`
    :param location: A location string which will be used to filter results.
    :param gender: The gender of the user performing the search.
    :param keywords: A list or space delimeted string of words to search for.
    :param order_by: The criteria to use for ordering results. expected_values:
                     'match', 'online', 'special_blend'
    """
    session = session or Session.login()
    return util.Fetchable.fetch_marshall(
        SearchHTMLFetcher(session, **kwargs),
        util.SimpleProcessor(
            session,
            lambda match_card_div: Profile(
                session=session,
                **MatchCardExtractor(match_card_div).as_dict
            ),
            _match_card_xpb
        )
    )