@Override
    protected boolean canRun(ClassNode node) {
        if (!node.superName.endsWith("Object") || classNodes.containsKey("NodeHashTable"))
            return false;
        if (node.fields.size() >= 2) {
            for (int fni=0; fni < node.fields.size(); fni++) {
                FieldNode fn = (FieldNode) node.fields.get(fni);
                if (fn.desc.equals("[L" + classNodes.get("Node").name + ";"))
                    return true;
            }
        }
        return false;
    }