Separate implementation of InstantiateIntersection function

Solves part of #48.