code: public static TaskFuture start(Config config, Class<? extends Sequencable> sequenceClass, Object... arguments)
      {
          Check.notNull(config);
          Check.notNull(sequenceClass);
          Check.notNull(arguments);
  
          final Runnable runnable = () -> handle(config, sequenceClass, arguments);
          final Thread thread = new Thread(runnable, Constant.ENGINE_NAME);
          final AtomicReference<Throwable> reference = new AtomicReference<>();
          thread.setUncaughtExceptionHandler((t, e) ->
          {
              reference.set(e);
              Verbose.exception(e);
              Engine.terminate();
          });
          thread.start();
  
          return () -> check(thread, reference);
      }
docs: Start the loader with an initial sequence.
  
  @param config The configuration used (must not be <code>null</code>).
  @param sequenceClass The the next sequence to start (must not be <code>null</code>).
  @param arguments The sequence arguments list if needed by its constructor.
  @return The asynchronous task executed.
  @throws LionEngineException If sequence is invalid or wrong arguments.