Everything refactored and commented out