When all entities are represented as first class objects, they can all be the target of an agent. This means that the target of a critic is no longer just the name of a parameter, but more specifically, it is a criticism entity, such as the criticism of the evaluation of the estimate. Each agent can acts on, or modify, the contents of its target. So a critic can store a criticism in the critique entity which is its target, an evaluator can store an evaluation in the evaluation entity which is its target. Similarly, the target of an estimator is an estimate entity, the target of a praiser is a praise entity and the target of a selector is a value entity. This idea is presented in figure 4.2.
Figure 4.2: Two estimate evaluation critics
There can be more than one criticism of the evaluation entity, from different points of view, in which case there would be one agent for each of these criticisms, shown as Critic1 and Critic2 in figure 4.2. These critic agents would have different points of view and different targets, as they are acting on two different entities. It is also possible for two critics to have different points of view but the same target as is the case with Critic2 and Critic3, if it is not desirable to store both criticisms produced by the two critics as separate entities.
Only one value and one estimate are possible at any time in a parameter block, unlike evaluations, criticisms, and praises, so there may be more than one selector or estimator agent, with different points of view, that have the same estimate or value as their target. This is also shown in figure 4.2.