Koenig, да разгрести тот же john не сложно, нужно просто составить план работ и потихоньку, шаг за шагом его выполнять и тестить (можно даже с обратной совместимостью, ничего страшного не будет).
А у моби, судя по коду, архитектура более выраженная