Commented and cleaned up the code considerably.