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