first attempt at refactoring - broken
dynamically add manager
wrap signal receiver connects in a function