Without package level visibility modifier, encapsulation code will be difficult. I agree that the file level private modifier is useful, but we can’t write all code in one file. On the other hands, split code to more and more module is unacceptable because of the build system.(That might be a choice if the build system can be improved. The cycling dependencies also should be considered.)