fixing a problem where duplicate signals could be added. Instead the default behavior if there is a duplicate to update the callback