architecture - with, for example, tailored patterns such as "situated agent", "virtual