can't this logic be merged in the SetExternalizer?