added a function and a trait util from stl