use decoder to prevent float conversion