trivial micro-optimization: lazily call the virtual method instead of eagerly calling it.