Started the extensive commenting so it is easier to update.