I think this should be an internal class