if the case classes are declared private, this will all them to escape their defining scope of they are not also marked private