signals and slots using c++11 magic