do we really need this insternal class?