support more unique key types