made linked list generic