optimisation with initialization