switched to boost::none
switched to boost::optional and boost::variant