adds rooms, improves update logic