add primary / composite key handling