updated to query for users when selecting the current room
pulled out some logic into their own classes for clarity