Added: universal opener function