change some method to private