organize listeners on client.listeners object, indexed by type, so that listener can automatically remove listeners during cleanup
organize listeners on client.listeners object, indexed by type, so that listener can automatically remove listeners during cleanup
add count during get, since count cannot be more than one per session, we don't risk running an unrealistic count
on page refresh, we can now update our listeners and get a fresh roster, old listeners are cleaned up and new ones are issued for this session. cool.