experiment with boost::optional