Linked List using Generics and Interfaces