more and refactor