From theory to practice in multiagent system design: The case of structural co-operation