stops unexpected extra delegate calls
changes delegate method name to more accurately reflect it’s purpose
fix for delegate method not being called
changes controlDelegate property to be weak rather than assign