start change all function into class
finish turn functions into class