var submitButton: UIButton @IBAction tapSubmit() { viewModel.fetchPeople() } } // UI-independent data layer class HumanListViewModel { var people = [HumanViewModel]() func fetchPeople() {} } MVVM: • Never reference the view controller • Do not import UIKit. Make it a different file • Do not reference anything from UIKit. Even buttons. • It should only be data, i.e., strings, structs, JSON