added an auto-vectorised version