use emplace_back, instead of push_back, when constructing new object and appending it to end of vecto