Refactorizo todo para aplicar ViewModels