Separate out discovery from consumer