public IFuture<Void> execute(IInternalAccess ia) { init(model.getModelInfo(), MicroAgentInterpreter.this.config, args) .addResultListener(createResultListener(new DelegationResultListener<Void>(inited) { public void customResultAvailable(Void result) { // Call user code init. microagent.agentCreated().addResultListener(new DelegationResultListener<Void>(inited)); } })); return IFuture.DONE; } };