optimise a bit