@Override
  public void stop() {
    super.stop();
    for (FermatEventListener fermatEventListener : listenersAdded) {
      eventManager.removeListener(fermatEventListener);
    }
    listenersAdded.clear();

    agente.stop();
  }
 @Override
 public void stop() {
   monitorAgent.stop();
   recorderService.stop();
   super.stop();
 }
  @Override
  public void start() throws CantStartPluginException {
    System.out.println("VAMM: PLUGIN ISSUER APPROPRIATION INICIADO!!");

    String context =
        "pluginId : "
            + pluginId
            + "\n"
            + "ErrorManager : "
            + errorManager
            + "\n"
            + "pluginDatabaseSystem : "
            + pluginDatabaseSystem
            + "\n"
            + "pluginFileSystem : "
            + pluginFileSystem
            + "\n"
            + "logManager : "
            + logManager
            + "\n"
            + "eventManager : "
            + eventManager
            + "\n"
            + "recorderService : "
            + recorderService
            + "\n";

    try {
      // CREATES ASSET APPROPRIATION DATABASE AND ITS TABLES.
      IssuerAppropriationDatabaseFactory databaseFactory =
          new IssuerAppropriationDatabaseFactory(pluginDatabaseSystem);
      if (!databaseFactory.isDatabaseCreated(pluginId)) {
        databaseFactory.createDatabase(pluginId);
      }
      assetVault = new IssuerAppropriationVault(pluginId, pluginFileSystem);
      recorderService =
          new IssuerAppropriationRecorderService(
              pluginId, eventManager, pluginDatabaseSystem, assetVault);
      recorderService.start();
      monitorAgent =
          new IssuerAppropriationMonitorAgent(
              assetVault,
              pluginDatabaseSystem,
              logManager,
              errorManager,
              pluginId,
              assetVaultManager,
              bitcoinNetworkManager,
              cryptoAddressBookManager,
              cryptoVaultManager,
              intraWalletUserIdentityManager,
              assetIssuerWalletManager,
              extraUserManager);
      monitorAgent.start();
    } catch (Exception e) {
      throw new CantStartPluginException(FermatException.wrapException(e), context, e.getMessage());
    } finally {
      this.serviceStatus = ServiceStatus.STOPPED;
    }

    super.start();
  }