  In this article we propose a general framework for normal approximation using
Stein's method. We introduce the new concept of Stein couplings and we show
that it lies at the heart of popular approaches such as the local approach,
exchangeable pairs, size biasing and many other approaches. We prove several
theorems with which normal approximation for the Wasserstein and Kolmogorov
metrics becomes routine once a Stein coupling is found. To illustrate the
versatility of our framework we give applications in Hoeffding's combinatorial
central limit theorem, functionals in the classic occupancy scheme,
neighbourhood statistics of point patterns with fixed number of points and
functionals of the components of randomly chosen vertices of sub-critical
Erdos-Renyi random graphs. In all these cases, we use new, non-standard
couplings.
