refactor and update readme.md