Hmm looks better now, but we are breaking plugin compatibility here. E.g. discovery does use self.set :-(