Almost ready to run. Need to account for edge cases