Externalisation and Internalization: A New Perspective on Agent Modularisation in Multi-Agent System Programming