using exchange reactions instead of half reactions. The result is not fully correct yet, but better.
using the right size when calculating residual for local problem.
This part is still not correct. Neef further correction.