Finished all the code for real this time