move from viewmodel to classes