Does it make sense to refactor this into a separate class to eliminate duplication? Provide a method to pass a list of option names and return the property source