re-organized list.h