readme and refactor