Complete draft version.  More testing.