intermediate commit, working on revised exception hierarchy