Merge John's latest changes.