static AddressQF* build_shared_quickfill (QofBook *book, const char * key)
{
    AddressQF *result;
    QofQuery *query = new_query_for_addresss(book);
    GList *entries = qof_query_run(query);

    /*     g_warning("Found %d GncAddress items", g_list_length (entries)); */

    result = g_new0(AddressQF, 1);

    result->qf_addr2 = gnc_quickfill_new();
    result->qf_addr3 = gnc_quickfill_new();
    result->qf_addr4 = gnc_quickfill_new();
    result->qf_sort = QUICKFILL_ALPHA;
    result->book = book;

    g_list_foreach (entries, address_cb, result);

    qof_query_destroy(query);

    result->listener =
        qof_event_register_handler (listen_for_gncaddress_events,
                                    result);

    qof_book_set_data_fin (book, key, result, shared_quickfill_destroy);

    return result;
}
static EntryQF* build_shared_quickfill (QofBook *book, const char * key, gboolean use_invoices)
{
    EntryQF *result;
//    GList *entries = qof_query_run(query);
    // TODO: list GncEntry sorted by DATE_ENTERED, increasing, 
    //  and returning one single item??

    /*     g_warning("Found %d GncEntry items", g_list_length (entries)); */

    result = g_new0(EntryQF, 1);

    result->using_invoices = use_invoices;
    result->qf = gnc_quickfill_new();
    result->qf_sort = QUICKFILL_LIFO;
    result->book = book;

//    g_list_foreach (entries, entry_cb, result);
//
//    qof_query_destroy(query);

    result->listener =
        qof_event_register_handler (listen_for_gncentry_events,
                                    result);

    qof_book_set_data_fin (book, key, result, shared_quickfill_destroy);

    return result;
}