When implementing a runtime module in substrate, given the following storage
decl_storage! {
  trait Store for Module<T: Trait> as CatAuction {
    Kitties get(kitties): map T::Hash => Kitty<T::Hash, T::Balance>;
    KittyOwner get(owner_of): map T::Hash => Option<T::AccountId>;
    OwnedKitties get(kitties_owned): map T::AccountId => T::Hash;
    pub AllKittiesCount get(all_kitties_cnt): u64;
    Nonce: u64;
    // if you want to initialize value in storage, use genesis block
  }
}
What is the purpose of pub in front of AllKittiesCount? Because whether there is pub or not, polkadot UI can still query it, as if it is a public variable.