OK, better OO, but a warning that redefining is_pk_compatible is not really an option.