why are all these functions private?