avoid copy to itself