Specific UI Events instead of catch-all, plus other cleanup