change some base function