Broke apart some of the code into other methods and added TODOs for later