working on agent class