refactor and add README.md