Adding Json serialization and responding to Reynold's feedback