added Factory template C++11 classes