The most common approach to defining infinity stacks is by forcing local-to-global properties on the category of prestacks via localization at the local isomorphisms. Unfortunately, this approach is not very intuitive. We will recall the notion of an open covering from classical topology while realizing the fact that the information of an open set can be recovered from a covering via a gluing process can be expressed categorically. Then an infinity stack is simply a "functor" on a category with a "topology" whose values are infinity categories and preserves the gluing of "open sets" i.e. the values of an infinity stack can be recovered from coverings. The infinity categories include a lot of data so we will also introduce an appropriate model category to model them.