Generalize to support Hurd