code: public TorrentManager addTorrent(String dotTorrentFilePath, String downloadDirPath, List<TorrentListener> listeners) throws IOException {
      return addTorrent(dotTorrentFilePath, downloadDirPath, FairPieceStorageFactory.INSTANCE, listeners);
    }
docs: Adds torrent to storage with specified listeners, validate downloaded files and start seeding and leeching the torrent
  
  @param dotTorrentFilePath path to torrent metadata file
  @param downloadDirPath    path to directory where downloaded files are placed
  @param listeners          specified listeners
  @return {@link TorrentManager} instance for monitoring torrent state
  @throws IOException if IO error occurs in reading metadata file