the old `not.installed` function only takes one argument (package names); now I need to take three, and I guess `Filter()` is no longer an elegant solution, so I just used the dumb loop approach, which seems to be the most straightforward