code: public static synchronized final IStorageModule open (final File file, final long storageLength, final boolean create, Class<? extends IStorageModule> kind) throws IOException {
          long sizeInBlocks;
          sizeInBlocks = storageLength / VIRTUAL_BLOCK_SIZE;
          if (create && !kind.equals(JCloudsStorageModule.class)) {
              createStorageVolume(file, storageLength);
          }
          // throws exc. if !file.exists()
          @SuppressWarnings ("unchecked")
          Constructor<? extends IStorageModule> cons = (Constructor<? extends IStorageModule>) kind.getConstructors()[0];
          try {
              IStorageModule mod = cons.newInstance(sizeInBlocks, file);
              return mod;
          } catch (InvocationTargetException | IllegalAccessException | InstantiationException exc) {
              throw new IOException(exc);
          }
      }
docs: This is the build method for creating instances of {@link RandomAccessStorageModule}. If there is no file to be
  found at the specified <code>filePath</code>, then a {@link FileNotFoundException} will be thrown.
  
  @param file a path leading to the file serving as storage medium
  @param storageLength length of storage (if not already existing)
  @param create should the storage be created
  @return a new instance of {@link RandomAccessStorageModule}
  @throws IOException