Modularise the common Infinite Rooms integration, so it can be used with other providers