refactor reverse