We provide a simple recipe for obtaining all self-adjoint extensions, together with their resolvent, of the symmetric operator S obtained by restricting the self-adjoint operator A : D (A) ⊆ H → H to the dense, closed with respect to the graph norm, subspace N ⊂ D (A). Neither the knowledge of S ∗ nor of the deficiency spaces of S is required. Typically A is a differential operator and N is the kernel of some trace (restriction) operator along a null subset. We parametrise the extensions by the bundle p : E(h) → P(h) ,w here P(h) denotes the set of orthogonal projections in the Hilbert space hD (A)/N and p −1 (Π) is the set of self-adjoint operators in the range of Π. The set of self-adjoint operators in h, i.e. p −1 (1), parametrises the relatively prime extensions. Any (Π,Θ) ∈ E(h) determines a boundary condition in the domain of the corresponding extension AΠ,Θ and explicitly appears in the formula for the resolvent (−AΠ,Θ + z) −1 . The connection with both von Neumann's and Boundary Triples theories of self-adjoint extensions is explained. Some examples related to quantum graphs, to Schroperators with point interactions and to elliptic boundary value problems are given.