     else if (p.timestepper == "adaptive")
     {
         adapt.construct( p.tableau, y0);
+        adapt.stepper().ignore_fsal();
+        double eps_time = js[ "timestepper"]["eps_time"].asDouble( 1e-10);
+        dirk.construct( "Midpoint (implicit)", feltor, eps_time);
         rtol = js[ "timestepper"][ "rtol"].asDouble( 1e-7);
         atol = js[ "timestepper"][ "atol"].asDouble( 1e-10);
         dt = 1e-5; //that should be a small enough initial guess

                                if( dt < 1e-6)
                                    throw dg::Error(dg::Message(_ping_)<<"Adaptive failed to converge! dt = "<<std::scientific<<dt);
                            }while( adapt.failed());
                        else if( p.timestepper == "adaptive-imex")
                            do{
                                adapt_ark.step( feltor, implicit, time, y0,

                double max_ue = dg::blas1::reduce(
                    feltor.velocity(0), 0., dg::AbsMax<double>() );
                std::cout << "\tMaximum ue "<<max_ue<<"\n";
                if( p.timestepper == "adaptive" || p.timestepper == "adaptive-imex")
                {
                    std::cout << "\tdt "<<dt<<"\n";
                    std::cout << "\tfailed "<<var.nfailed<<"\n";
