llist refactoring