Big Refactor.