upgraded to boost::signals2 because signals is deprecated