internal class instead of private