Don't wrap callback in try/catch -- can grab/mask errors thrown by the callback function.