also, you shouldn't need to expose these methods, no? I mean this can be done on init