code: public static TransferListener getInstance(String xferId, AsperaTransaction transaction) {
  		if(instance == null) {
  			instance = new TransferListener();
  		}
  
  		if(transactions.get(xferId) != null) {
  			transactions.get(xferId).add(transaction);
  		} else {
  			List<AsperaTransaction> transferTransactions = new ArrayList<AsperaTransaction>();
  			transferTransactions.add(transaction);
  			transactions.put(xferId, transferTransactions);
  		}
  
  		return instance;
  	}
docs: Returns TransferListener instance and associates an AsperaTransaction with a Transfer ID.
  On change of transfer status or bytes transferred the TransferLsitener will fire a progress
  change event to all progress listeners attached to the AsperaTransaction.
  
  @param xferId
  @param transaction
  @return