add accept() and finalize() in time step functions