refactored to allow for multiple distinct rooms