Callback cleanup

This PR refactors getting and cleaning off callbacks. Way too much copy and paste!