generator use deepcopy to use site_settings instead of shadow copy