does this actually need to be public?
consider the same for "public" classes that are not really intended for use outside of the internal workings of this sub-module. We are adding semver checking in #265 and limiting public interfaces will let us be more flexible with regards to changing things around without needlessly bumping major version numbers.