keys don't have to be strings