Link List update based on Brett Terpstra's code