compile fine,change Makefile,refactoring