Toward a reusable architecture for intelligent agents | Synapse