template and stl updates