added factory and a linkedlist test