Merged at last, plus many changes.