Add substitute mechanism implementation