Model, Factory, Repository, ViewModel