required agent class