could do this while userSelections is being built up, but efficiency here shouldn't be that critical