support for multiple OS without calling the subclass directly

basically to take advantage of the %modules hash, so it's more likely to dwim for users