use DList somewhat