I've long been pro on the idea of a service layer between the CLI and primary domain objects. Putting aside implementation choices like functions/methods/whatever, this is a +1 from me. Adding stuff to e.g. Branch would be undesirable for this IMO. -Rob