complete the implementation of List and write a makefile