any reason for this to be a public class ?