add emplace_back and pop_back, use them