extensive changes. almost done.