adding port of c++ stl library