composite primary keys support

#1142