sclass WeakRefVMBusListener extends WeakReference implements IF2 { Set listeners; // where we were added *(S *msg, O listener) { super(listener); } O get(S msg, O arg) { O listener = get(); if (listener == null) { listeners.remove(listener); null; } ret callF(listener, msg, arg); } }