Moved several files into the ViewModel folder because they are not UI concerns