You should instead try to cache the TreeOptions object inside of the Config by using the SectionParser API (see CoreConfig as an example). That way we don't do a linear search through the variables every time we try to acquire the configuration. Instead we only trigger the linear search when there was a variable change and the cached objects had to be invalidated.