Improve some base function