Done #11 #15 #16

#16 will override #11, try mock the same function will get the same
mocker object.