Just to confirm I understand the other changes above, so, this is the main purpose of the base_type addition in the exchange traits, right?