rollback if needed
merge with ZAch2