refactory the whole project.
update README.md