the `add` method returns `false` on exception, and the value of `processSuccess` or `processError` when no exception occurs.  We could just make `processFoo` return void, and put the `return true;`  at the end of `add` but I liked this better.  I can change it if you prefer.