code: public static <Data extends AbstractKVStorable> DRUMS<Data> createTable(AbstractHashFunction hashFunction,
              DRUMSParameterSet<Data> gp) throws IOException {
          File databaseDirectoryFile = new File(gp.DATABASE_DIRECTORY);
          if (databaseDirectoryFile.exists()) {
              throw new IOException("The directory " + databaseDirectoryFile + " already exist. Can't create a DRUMS.");
          }
          // First the directory structure must be created
          new File(gp.DATABASE_DIRECTORY).mkdirs();
          logger.info("Created directory {}.", gp.DATABASE_DIRECTORY);
  
          gp.store();
          storeHashFunction(gp, hashFunction);
  
          DRUMS<Data> table = new DRUMS<Data>(hashFunction, AccessMode.READ_WRITE, gp);
          return table;
      }
docs: This method creates a new DRUMS object.<br/>
  If the directory in {@link DRUMSParameterSet} doesn't exist, it will be created.<br/>
  If the directory in {@link DRUMSParameterSet} already exists an {@link IOException} will be thrown.
  
  @param hashFunction
  the hash function, decides where to store/search elements
  @param gp
  pointer to the {@link DRUMSParameterSet} used by the {@link DRUMS} to open
  @return new {@link DRUMS}-object
  @throws IOException