srecord Offer(S description, Runnable action) implements Runnable { run { callF(action); } }