almost done with batch learning