moved this to be an internal function, since our versioning logic relies on it we don't want other things to also use it!