misc api cleanup and reorg for viewModel and router