Implementation traingd optimisation 2