The controller singleton acts as a proxy to relay signals from each widget to the other It should help encapsulating things better if we need to use a different class for image viewers in the future.