reordered, and commented