Why are some classes public and some internal?