handling composite keys