some base knowledge