updata while semantic