switch to Boost.Signals2