using C++11 varidic template feature