using emplace
removed unused function argument
more C++11