Beginning of Large Refactoring