modify functions to be private