Rearranged for better viewing.