new commit. Many changes. Very close to good.