Added comments to the code...some are pretty bad, but I just don't know
how to properly explain them...