Away with all those temporaries, construct in-place