allow for custom primary key