factory pattern: http://www.oodesign.com/factory-pattern.html traits: https://www.kuro5hin.org/?op=displaystory&sid=2001/3/1/72020/17594 http://www.informit.com/articles/article.aspx?p=30642&seqNum=8 https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Non-copyable_Mixin http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/CLASSES-INTRO.html http://ericscottbarr.com/blog/2014/04/c-plus-plus-14-and-sdl2-managing-resources/ constexpr http://eli.thegreenplace.net/2011/12/15/understanding-lvalues-and-rvalues-in-c-and-c/ http://en.cppreference.com/w/cpp/language/static_assert