method call cache [ci skip]