factor-out views to their own files