def do_p(pers)

      case r = pers ? try_persist : try_unpersist
        when true
          false # do not go on
        when Hash
          self.h = r
          self.send("do_#{@msg['action']}", @msg) if @msg
          false # do not go on
        else
          true # success, do go on
      end
    end
def do_p(pers)

      case r = pers ? try_persist : try_unpersist
        when true
          false # do not go on
        when Hash
          self.h = r
          self.send("do_#{@msg['action']}", @msg) if @msg
          false # do not go on
        else
          true # success, do go on
      end
    end
Does persist or unpersist, if successful then returns true. If the
 expression is gone, returns false.
 If there is a 'fresher' version of the expression, re-attempt and returns
 false.