Added many comments, made code easier to read. Yay for readability! More work to do.