Added disconnect() method to signals
Refactored to get rid of code duplication