improved list handling