- lazy class (re)definition at runtime (memory saving) - allows custom attributes in case SHACL shape does not have `sh:closed`