added ExternalAgentProvider