вы просто сказали, что вся опциональная грязь в update
Такие классы ещё и не протестировать нормально. У них цикломатическая сложность такая, что тестов надо писать на порядки больше, чем самого кода.
Вообще, переход к тестируемому коду даётся очень тяжело. Потому что приходится отказываться от огромного количества "хаков", так полюбившихся за годы кодинга