boost::none is used instead of default constructor of boost::optional

also changed types from size_t ot uint32_t in the embed_t constructor