fixed a 'missing return' warning.
made the callback optional, discovered a bug