1. A computer controlled system including a simulation engine having a set of state variables, and having a set of rules describing permitted changes in value of those state variables, wherein substantially each collection of possible values for the set of state variables defines a context; a stored set of behavior models, each capable of responding to a query from the simulation engine and capable of generating a response to that query; a stored set of software agents, at least one of which being responsive to one or more behavior models, said at least one being capable of being updated in response to actions taken in a context.