Agent-based simulation of socio-technical systems :software architecture and timing mechanisms