I think a much cleaner approach may to create new interactions for the simple terms and more complex interactions for the more complex terms. If there's already an interaction term for like

```python
{'type' : 'Interaction', 
 'Interaction Fields' : ['first name', 'last name']}
```

then we create a new, additional interaction terms like

```python
{'type' : 'Interaction', 
 'Interaction Fields' : ['first name', 'last name', 'source']}
```
and
```python
{'type' : 'Interaction', 
 'Interaction Fields' : ['first name', 'last name', 'different sources']}
```