use init and serialize helper in constructor