re-add stuff from wrong merge