use option / check for NaN underflow etc
use option / check for NaN underflow etc