implement Compound Key