// "IProbabilistic" - a probabilistic runnable sinterface IProbabilistic /*extends Runnable*/ { public void setScheduler(IProbabilisticScheduler ps); public IProbabilisticScheduler scheduler(); /*default void run(IProbabilisticScheduler ps) { setScheduler(ps); run(); }*/ default A initAction(A a) { scheduler().initAction(a); ret a; } // do initial calculations & optionally schedule additional steps void step0(); }