Abstract Agents

documentation refactoring