We simplify the presentation of the method of elementary submodels and we show that it can be used to simplify proofs of existing separable reduction theorems and to obtain new ones. Given a nonseparable Banach space X and either a subset A ⊂ X or a function f defined on X, we are able for certain properties to produce a separable subspace of X which determines whether A or f has the property in question. Such results are proved for properties of sets: of being dense, nowhere dense, meager, residual or porous, and for properties of functions: of being continuous, semicontinuous or Fréchet differentiable. Our method of creating separable subspaces enables us to combine results, so we easily get separable reductions of properties such as being continuous on a dense subset, Fréchet differentiable on a residual subset, etc. Finally, we show some applications of separable reduction theorems and demonstrate that some results of Zajíček, Lindenstrauss and Preiss hold in the nonseparable setting as well.