iOS: viewmodel