| CleanerBDIAgent | Separate Maintain and Target Conditions. | 
| CleanerBDIAgentA0 | BDI agent template. | 
| CleanerBDIAgentA1 | First BDI agent with a goal and a plan. | 
| CleanerBDIAgentA2 | Use the recur flag to execute goals periodically. | 
| CleanerBDIAgentA3 | Use many plans for the same goal. | 
| CleanerBDIAgentA4 | Use goal settings to control plan selection. | 
| CleanerBDIAgentB1 | Use a belief to control a declarative goal. | 
| CleanerBDIAgentB2 | Using deliberation settings for managing conflicting goals. | 
| CleanerBDIAgentB3 | Separate maintain and target conditions. | 
| CleanerBDIAgentC0 | Managing known charging stations in a belief set. | 
| CleanerBDIAgentC1 | A subgoal for knowing charging stations | 
| CleanerBDIAgentC2 | A Plan for Finding a Charging Station | 
| CleanerBDIAgentD1 | A cleanup goal for each piece of waste. | 
| CleanerBDIAgentD2 | Separate Maintain and Target Conditions. | 
| CleanerBDIAgentD3a | Separate Maintain and Target Conditions. | 
| CleanerBDIAgentD3b | Separate Maintain and Target Conditions. | 
| CleanerBDIAgentE1 | Using inner classes for plans with conditions. | 
| CleanerBDIAgentFinal | More or less working solution for a BDI cleaner. | 
| SimpleCleanerAgentZero | Possible solution for exercise zero (non-BDI cleaner). |