A late idea: what if we replace .room_names() with .rooms_from_adhoc_data() ? The method will do effectively the same, but return room objects instead of just names, which may optimize some further computations