added precision control