Finished all the code, just needs comments.