Moved around and renamed somethings to make the flow a bit more logical.