working out operator/vector type selection in factory