added use of boost::bimap