cleaned up RosterListener to handle presence info