Reorganise and substantially rewrite.