client and bot