first version on list.h
list implementation