pre rotation refactor