Reworked the solution to be a substitute wide. Introduced ISubstituteContext which stores CustomHandlers