Added serialization header file inspired by the meta-serialization of
Simone Pellegrini