Version 3: Fixed onUnload bug