added basic list implementation