a little optimisation