remove dependency on list_t