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