added broyden solver