using std::list for rib