make space in internal model to record joins
rearrange internal data model to allow simpler access
return joins along with their pk
drill join-pk fn down to where needed
oops - now that we have join-pk it is a waste of time passing around a list of pairs [pk join] when we can get the pk via the join-pk fn whenever we like...