keys/values can be any byte string, str -> [u8]