added init_driver routine, fixed bfgs backstep