stl and non-stl versions