This method would be easier to understand if it returned an instance of `Producer` and not set `producer`.  A good rule to follow is that getters should not have side effects.