Use fancy C++ variadic templates for creating components in EntityManager. Beautiful :D