added use of boost::variant