All refactor