added primary key option to init