#3 allow additional key types