std implementation