refactoring and add description to readme.md