Added too much stuff. Need to break these changes down. Gonna refactor.