Added comments, and cleaned up code.