powerful mock functor for c++