Split view models and router into own files