No, `update_first` should not be here. Except for `update_value` (which looks better with local name, not `update_value`, it is the only non-keyword argument) only `**kwargs` and keyword arguments that are actually used should be here. `update_first` is not used. Neither should be `self` (`self.rvm_current = ` should be replaced with `return`), static method is enough for the job.