Rewrite to use distro-specific class-based system