pre body refactor