fix TU thing a little better.

can't do a std::max(1) when 0 is actually valid, better to fix it in the
reaction code