move packet logic out of the base client and make an auth client instead