refactor: begin removal of business logic from viewmodel