Split out logic for OT into insert-trans and retain-trans