add source and Makefile