fixed to handle keys that aren't strings/keywords