  We present a general framework for forcing on $\omega_2$ with finite
conditions using countable models as side conditions. This framework is based
on a method of comparing countable models as being membership related up to a
large initial segment. We give several examples of this type of forcing,
including adding a function on $\omega_2$, adding a nonreflecting stationary
subset of $\omega_2 \cap \textrm{cof}(\omega)$, and adding an $\omega_1$-Kurepa
tree.
