add support for multiple primary keys