add arithmetic fault tolerance