add stl style emplace_back() to vec to support perfect forwarding to constructors of items