More improvements.
Still a work in progress.