implemented linked list and various methods