total refactor