persistable abstract sclass AbstractJuicer extends MetaWithChangeListeners { // what we are monitoring & closing (a position or a strategy) settableWithVar Juiceable juiceable; settableWithVar double seenJuiceValue; // must return a new list swappable L calculateCloseSignals() { ret new L; } double juiceValue() { seenJuiceValue(juicable.juiceValue()); ret seenJuiceValue; } }