list deconstructor