Finished all the code, just need to finish the comments.