it looks like this class and it subclasses could be only package visible (if in the parent package). That way they stay part of our internal APIs.