add optimise