Added AgentBase class