note that the 2 mock implementations are both similar and very different (because they were written by different people) and I understand that's not that easy :)