Minor nitpick: decoupling isn't the ability to test things separately— although it allows you to do that. Decoupling is the minimization of a piece of software's dependence on another.
That was a slight "oops", sorry :)
If you're doing another post, it would be nice to see examples of a functional implementation of addNumbers.