Added header file for #1 which includes generation, (de)serialization and storage