Refactor Completely