add compiler optimisation