adding supports for variable-sized keys