A lot of changes. Still a major work in progress.