added stl algorithms