added hint of useing vector::insert instead of copy