Improve Collection extensibility

Make the only `private` method `protected` so it can be used in other implementations.
Merge pull request #4479 from guiwoda/patch-1

Improve Collection extensibility