why? the strategy could check if we already have the join and only add it if not.

i feel we are doing bad architecture here if we have the responsibility outside the strategy.