refactor reverser