Cleaned up the code a bit. More comments.