add precision control