let rec monkeypatch (root: IConfiguration) (path: string) =
if not(String.IsNullOrEmpty(root.Item("path"))) && root.Item("path").StartsWith(".")
then
root.Item("path") <- Path.Combine(path, root.Item("path"))
else
for c in root.GetChildren() do monkeypatch c path