implemented many List functions