ensure keys are unique