re-factoring floating point adder