refactor viewmodel into its own project