readme and refactoring