This is mostly a pure code move. In passing I remove an unneeded call to update_calculated_fields in the dispatch code, plus some tests that don't need them.