Correct UserIntermediateCallback

There was a problem with boost::optional and pure virtual UserIntermediateCallback.