make some KGn defs abstract