added steepest descent method with backtracking