add code and makefile