reorganize and add a makefile
reorganize and add a makefile