callbacks: added the ability to provide/receive return values from callbacks.  a *little* more complicated but necessary.