This appears to have the problem that if we have a kernel that does not match one of the defined classes, we'll return nil, which will cause other points in the code to invoke methods on nil. Before, we would have no interface facts, but now Facter itself with raise an exception.