Using assign with self causes a retain cycle. https://github.com/V8tr/ModernMVVM/blob/98a36fca2061f4d3ef71d5a18948e4fa5d485e0b/ModernMVVM/Features/MovieDetails/MovieDetailViewModel.swift#L31 For more details check this [forum post](https://forums.swift.org/t/does-assign-to-produce-memory-leaks/29546/10) or [stackoverflow post](https://stackoverflow.com/questions/57980476/how-to-prevent-strong-reference-cycles-when-using-apples-new-combine-framework)