seperate out init and running to do partial runs until done.