// a variant of thread where you can get the Runnable target later sclass BetterThread extends Thread { Runnable target; *(Runnable *target) {} run { if (target != null) target.run(); } Runnable getTarget() { ret target; } }