I need to come back and improve this. I delayed so long on submitting it because I kept meaning to, but at this point it may be awhile, so here we are.