the basic function is fixed.