This required a bit of refactoring of some mocking due to how the code generation does not handle having the same function in different types.