added shouldBeCalled, canBeCalled, and doc