First pass at RoomClient