explain key/value restrictions