many changes, and simplifications.