Extract room refresh into composed function