  By a virtual model, we mean a model of set theory which is elementary in its
transitive closure. Virtual models are first used by Neeman
\cite{neeman2014forcing} to iterate forcing. That paper is concerned with
proper forcing. The method was then adjusted by Veli\v{c}kovi\'c to the case of
semi-proper forcing and this was drafted in \cite{velickovic2021iteration}. We
here straighten the details and further elaborate on Veli\v{c}kovi\'c's method.
The first section collects facts about virtual model, the second section
describes the iteration, and the third one illustrates the method in the case
of getting saturation of $\mathsf{NS}_{\omega_1}$ (loosely relying on
\cite{schindler2016nsomega1}).
