2nd Round of Refactoring