There should NOT be a protected properties inside the framework!
This will make the core code harder to support!

The method "resetReusableData" is actually missing. Each private property should have some interface for set/get or, like in this case, reset its value.

Yes we are using it for the unit test, but that does not mean, there is none who may need it in the other place.