Trait classes.
Merge remote-tracking branch 'origin/master'
Include and function declaration updates. AgentFactort deleted.
Changes in main.cpp/. AgentHandler added.