diff --git a/Aurora/Aurora.csproj b/Aurora/Aurora.csproj
index 05ac152..03abbe3 100644
--- a/Aurora/Aurora.csproj
+++ b/Aurora/Aurora.csproj
@@ -19,8 +19,12 @@
     
     
     
-    
+    
     
     
+    
+    
+    
+    
   
 
\ No newline at end of file
diff --git a/Aurora/Frontend/Views/MainView/NavigationItem.cs b/Aurora/Frontend/Components/NavigationMenu/NavigationItem.cs
similarity index 71%
rename from Aurora/Frontend/Views/MainView/NavigationItem.cs
rename to Aurora/Frontend/Components/NavigationMenu/NavigationItem.cs
index 707201f..27933f7 100644
--- a/Aurora/Frontend/Views/MainView/NavigationItem.cs
+++ b/Aurora/Frontend/Components/NavigationMenu/NavigationItem.cs
@@ -3,17 +3,18 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using Aurora.Frontend.Views.Main;
 
-namespace Aurora.Frontend.Views.Main
+namespace Aurora.Frontend.Views.Components.NavigationMenu
 {
     public class NavigationItem
     {
         public NavigationItem()
         {
-            TargetType = typeof(MainContentPage);
         }
         public int Id { get; set; }
         public string Title { get; set; }
+        public string Group { get; set; }
 
         public Type TargetType { get; set; }
     }
diff --git a/Aurora/Frontend/Components/NavigationMenu/NavigationMenu.xaml b/Aurora/Frontend/Components/NavigationMenu/NavigationMenu.xaml
new file mode 100644
index 0000000..fc4032a
--- /dev/null
+++ b/Aurora/Frontend/Components/NavigationMenu/NavigationMenu.xaml
@@ -0,0 +1,42 @@
+
+
+    
+        
+            
+                
+                    
+                        
+                            
+                            
+                            
+                        
+                        
+                            
+                            
+                            
+                            
+                        
+                        
+                    
+                
+                
+                
+                    
+                        
+                            
+                                
+                            
+                        
+                    
+                
+            
+        
+    
+
diff --git a/Aurora/Frontend/Components/NavigationMenu/NavigationMenu.xaml.cs b/Aurora/Frontend/Components/NavigationMenu/NavigationMenu.xaml.cs
new file mode 100644
index 0000000..c5c0426
--- /dev/null
+++ b/Aurora/Frontend/Components/NavigationMenu/NavigationMenu.xaml.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using Aurora.Frontend.Views.Components.NavigationMenu;
+using Xamarin.Forms;
+
+namespace Aurora.Frontend.Components.NavigationMenu
+{
+    public partial class NavigationMenu : ContentPage
+    {
+        public NavigationMenu()
+        {
+            InitializeComponent();
+            ListView = MenuItemsListView;
+        }
+
+        public ListView ListView;
+
+        public static readonly BindableProperty ItemsProperty =
+            BindableProperty.Create(propertyName: nameof(Items),
+                returnType: typeof(ObservableCollection),
+                declaringType: typeof(NavigationMenu),
+                defaultBindingMode: BindingMode.TwoWay,
+                propertyChanged: OnItemsChanged);
+
+        public ObservableCollection Items
+        {
+            get 
+            { 
+                return (ObservableCollection)GetValue(ItemsProperty); 
+            }
+            set 
+            { 
+                SetValue(ItemsProperty, value); 
+            }
+        }
+
+        private static void OnItemsChanged(BindableObject bindable, object oldValue, object newValue)
+        {
+            var control = (NavigationMenu)bindable;
+            control.MenuItemsListView.ItemsSource = (ObservableCollection)newValue;
+        }
+
+    }
+}
diff --git a/Aurora/Frontend/Views/Albums/AlbumsView.xaml b/Aurora/Frontend/Views/Albums/AlbumsView.xaml
new file mode 100644
index 0000000..3ac2daf
--- /dev/null
+++ b/Aurora/Frontend/Views/Albums/AlbumsView.xaml
@@ -0,0 +1,6 @@
+
+
+    
+        
+    
+
diff --git a/Aurora/Frontend/Views/Albums/AlbumsView.xaml.cs b/Aurora/Frontend/Views/Albums/AlbumsView.xaml.cs
new file mode 100644
index 0000000..9da7656
--- /dev/null
+++ b/Aurora/Frontend/Views/Albums/AlbumsView.xaml.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+
+using Xamarin.Forms;
+
+namespace Aurora.Frontend.Views.Albums
+{
+    public partial class AlbumsView : ContentPage
+    {
+        public AlbumsView()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/Aurora/Frontend/Views/Albums/AlbumsViewModel.cs b/Aurora/Frontend/Views/Albums/AlbumsViewModel.cs
new file mode 100644
index 0000000..b301c62
--- /dev/null
+++ b/Aurora/Frontend/Views/Albums/AlbumsViewModel.cs
@@ -0,0 +1,10 @@
+using System;
+namespace Aurora.Frontend.Views.Albums
+{
+    public class AlbumsViewModel
+    {
+        public AlbumsViewModel()
+        {
+        }
+    }
+}
diff --git a/Aurora/Frontend/Views/Artists/ArtistsView.xaml b/Aurora/Frontend/Views/Artists/ArtistsView.xaml
new file mode 100644
index 0000000..da15e25
--- /dev/null
+++ b/Aurora/Frontend/Views/Artists/ArtistsView.xaml
@@ -0,0 +1,5 @@
+
+
+    
+    
+
diff --git a/Aurora/Frontend/Views/Artists/ArtistsView.xaml.cs b/Aurora/Frontend/Views/Artists/ArtistsView.xaml.cs
new file mode 100644
index 0000000..bd520a5
--- /dev/null
+++ b/Aurora/Frontend/Views/Artists/ArtistsView.xaml.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+
+using Xamarin.Forms;
+
+namespace Aurora.Frontend.Views.Artists
+{
+    public partial class ArtistsView : ContentPage
+    {
+        public ArtistsView()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/Aurora/Frontend/Views/Artists/ArtistsViewModel.cs b/Aurora/Frontend/Views/Artists/ArtistsViewModel.cs
new file mode 100644
index 0000000..c8455e0
--- /dev/null
+++ b/Aurora/Frontend/Views/Artists/ArtistsViewModel.cs
@@ -0,0 +1,10 @@
+using System;
+namespace Aurora.Frontend.Views.Artists
+{
+    public class ArtistsViewModel
+    {
+        public ArtistsViewModel()
+        {
+        }
+    }
+}
diff --git a/Aurora/Frontend/Views/BaseViewModel.cs b/Aurora/Frontend/Views/BaseViewModel.cs
new file mode 100644
index 0000000..76b6588
--- /dev/null
+++ b/Aurora/Frontend/Views/BaseViewModel.cs
@@ -0,0 +1,24 @@
+using System;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+
+namespace Aurora.Frontend.Views
+{
+    public class BaseViewModel
+    {
+        public BaseViewModel()
+        {
+        }
+
+        #region INotifyPropertyChanged Implementation
+        public event PropertyChangedEventHandler PropertyChanged;
+        public void OnPropertyChanged([CallerMemberName] string propertyName = "")
+        {
+            if (PropertyChanged == null)
+                return;
+
+            PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
+        }
+        #endregion
+    }
+}
diff --git a/Aurora/Frontend/Views/MainView/MainContentPage.xaml b/Aurora/Frontend/Views/MainView/MainContentPage.xaml
deleted file mode 100644
index 6d2c554..0000000
--- a/Aurora/Frontend/Views/MainView/MainContentPage.xaml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-    
-        
-    
-
diff --git a/Aurora/Frontend/Views/MainView/MainContentPage.xaml.cs b/Aurora/Frontend/Views/MainView/MainContentPage.xaml.cs
deleted file mode 100644
index 2f3801d..0000000
--- a/Aurora/Frontend/Views/MainView/MainContentPage.xaml.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using Xamarin.Forms;
-using Xamarin.Forms.Xaml;
-
-namespace Aurora.Frontend.Views.Main
-{
-    [XamlCompilation(XamlCompilationOptions.Compile)]
-    public partial class MainContentPage : ContentPage
-    {
-        public MainContentPage()
-        {
-            InitializeComponent();
-        }
-    }
-}
diff --git a/Aurora/Frontend/Views/MainView/MainView.xaml b/Aurora/Frontend/Views/MainView/MainView.xaml
index 080e29b..7098895 100644
--- a/Aurora/Frontend/Views/MainView/MainView.xaml
+++ b/Aurora/Frontend/Views/MainView/MainView.xaml
@@ -1,36 +1,20 @@
 
-
-
 
+    xmlns="http://xamarin.com/schemas/2014/forms"
+    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
+    xmlns:views="clr-namespace:Aurora.Frontend.Views.Songs"
+    xmlns:navigation="clr-namespace:Aurora.Frontend.Components.NavigationMenu"
+    x:Class="Aurora.Frontend.Views.Main.MainView"
+    MasterBehavior="Split">
 
         
-            
+            
         
         
         
             
                 
-                    
+                    
                 
             
         
diff --git a/Aurora/Frontend/Views/MainView/MainView.xaml.cs b/Aurora/Frontend/Views/MainView/MainView.xaml.cs
index 1d05951..686cff4 100644
--- a/Aurora/Frontend/Views/MainView/MainView.xaml.cs
+++ b/Aurora/Frontend/Views/MainView/MainView.xaml.cs
@@ -1,5 +1,7 @@
 using System;
 using System.Collections.Generic;
+using Aurora.Frontend.Views.Components.NavigationMenu;
+using Aurora.Frontend.Views.MainView;
 using Xamarin.Forms;
 using Xamarin.Forms.Xaml;
 
@@ -11,7 +13,7 @@ namespace Aurora.Frontend.Views.Main
         public MainView()
         {
             InitializeComponent();
-            
+            BindingContext = new MainViewModel();
             MasterPage.ListView.ItemSelected += ListView_ItemSelected;
         }
 
diff --git a/Aurora/Frontend/Views/MainView/MainViewModel.cs b/Aurora/Frontend/Views/MainView/MainViewModel.cs
new file mode 100644
index 0000000..af90e05
--- /dev/null
+++ b/Aurora/Frontend/Views/MainView/MainViewModel.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+using Aurora.Frontend.Views.Albums;
+using Aurora.Frontend.Views.Artists;
+using Aurora.Frontend.Views.Components.NavigationMenu;
+using Aurora.Frontend.Views.Songs;
+using Aurora.Frontend.Views.Stations;
+
+namespace Aurora.Frontend.Views.MainView
+{
+    public class MainViewModel : BaseViewModel
+    {
+        private ObservableCollection _pages;
+        public  ObservableCollection Pages
+        {
+            get { return _pages; }
+            set
+            {
+                if(value != _pages)
+                {
+                    _pages = value;
+                    OnPropertyChanged("Pages"); 
+                }
+
+            }
+        }
+        public MainViewModel()
+        {
+            _pages = new ObservableCollection(new[]
+            {
+                new NavigationItem { Id = 0, Title = "Songs", Group="Library", TargetType = typeof(SongsView) },
+                new NavigationItem { Id = 1, Title = "Artists", Group="Library", TargetType = typeof(ArtistsView)},
+                new NavigationItem { Id = 2, Title = "Albums", Group="Library", TargetType = typeof(AlbumsView)},
+                new NavigationItem { Id = 3, Title = "Stations", Group="Library", TargetType = typeof(StationsView)},
+
+            });
+
+        }
+
+    }
+}
diff --git a/Aurora/Frontend/Views/MainView/NavigationMenu.xaml b/Aurora/Frontend/Views/MainView/NavigationMenu.xaml
deleted file mode 100644
index 647fd53..0000000
--- a/Aurora/Frontend/Views/MainView/NavigationMenu.xaml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-    
-        
-            
-                
-                    
-                        
-                        
-                        
-                    
-                    
-                        
-                        
-                        
-                        
-                    
-                    
-                
-            
-            
-            
-                
-                    
-                        
-                            
-                        
-                    
-                
-            
-        
-    
-
diff --git a/Aurora/Frontend/Views/MainView/NavigationMenu.xaml.cs b/Aurora/Frontend/Views/MainView/NavigationMenu.xaml.cs
deleted file mode 100644
index e6f197e..0000000
--- a/Aurora/Frontend/Views/MainView/NavigationMenu.xaml.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using System.Runtime.CompilerServices;
-using System.Text;
-using System.Threading.Tasks;
-
-using Xamarin.Forms;
-using Xamarin.Forms.Xaml;
-
-namespace Aurora.Frontend.Views.Main
-{
-    [XamlCompilation(XamlCompilationOptions.Compile)]
-    public partial class NavigationMenu : ContentPage
-    {
-        public ListView ListView;
-
-        public NavigationMenu()
-        {
-            InitializeComponent();
-
-            BindingContext = new MainViewMasterViewModel();
-            ListView = MenuItemsListView;
-        }
-
-        class MainViewMasterViewModel : INotifyPropertyChanged
-        {
-            public ObservableCollection MenuItems { get; set; }
-
-            public MainViewMasterViewModel()
-            {
-                MenuItems = new ObservableCollection(new[]
-                {
-                    new NavigationItem { Id = 0, Title = "Page 1" },
-                    new NavigationItem { Id = 1, Title = "Page 2" },
-                    new NavigationItem { Id = 2, Title = "Page 3" },
-                    new NavigationItem { Id = 3, Title = "Page 4" },
-                    new NavigationItem { Id = 4, Title = "Page 5" },
-                });
-            }
-
-            #region INotifyPropertyChanged Implementation
-            public event PropertyChangedEventHandler PropertyChanged;
-            void OnPropertyChanged([CallerMemberName] string propertyName = "")
-            {
-                if (PropertyChanged == null)
-                    return;
-
-                PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
-            }
-            #endregion
-        }
-    }
-}
diff --git a/Aurora/Frontend/Views/Songs/SongsView.xaml b/Aurora/Frontend/Views/Songs/SongsView.xaml
new file mode 100644
index 0000000..f6276ef
--- /dev/null
+++ b/Aurora/Frontend/Views/Songs/SongsView.xaml
@@ -0,0 +1,6 @@
+
+
+    
+        
+    
+
diff --git a/Aurora/Frontend/Views/Songs/SongsView.xaml.cs b/Aurora/Frontend/Views/Songs/SongsView.xaml.cs
new file mode 100644
index 0000000..24e46e8
--- /dev/null
+++ b/Aurora/Frontend/Views/Songs/SongsView.xaml.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+
+using Xamarin.Forms;
+
+namespace Aurora.Frontend.Views.Songs
+{
+    public partial class SongsView : ContentPage
+    {
+        public SongsView()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/Aurora/Frontend/Views/Songs/SongsViewModel.cs b/Aurora/Frontend/Views/Songs/SongsViewModel.cs
new file mode 100644
index 0000000..ac83454
--- /dev/null
+++ b/Aurora/Frontend/Views/Songs/SongsViewModel.cs
@@ -0,0 +1,10 @@
+using System;
+namespace Aurora.Frontend.Views.Songs
+{
+    public class SongsViewModel
+    {
+        public SongsViewModel()
+        {
+        }
+    }
+}
diff --git a/Aurora/Frontend/Views/Stations/StationsViewModel.xaml b/Aurora/Frontend/Views/Stations/StationsViewModel.xaml
new file mode 100644
index 0000000..b89c794
--- /dev/null
+++ b/Aurora/Frontend/Views/Stations/StationsViewModel.xaml
@@ -0,0 +1,5 @@
+
+
+    
+    
+
diff --git a/Aurora/Frontend/Views/Stations/StationsViewModel.xaml.cs b/Aurora/Frontend/Views/Stations/StationsViewModel.xaml.cs
new file mode 100644
index 0000000..d9a76de
--- /dev/null
+++ b/Aurora/Frontend/Views/Stations/StationsViewModel.xaml.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+
+using Xamarin.Forms;
+
+namespace Aurora.Frontend.Views.Stations
+{
+    public partial class StationsView : ContentPage
+    {
+        public StationsView()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/Aurora/Frontend/Views/Stations/StatiosnViewModel.cs b/Aurora/Frontend/Views/Stations/StatiosnViewModel.cs
new file mode 100644
index 0000000..18b7392
--- /dev/null
+++ b/Aurora/Frontend/Views/Stations/StatiosnViewModel.cs
@@ -0,0 +1,10 @@
+using System;
+namespace Aurora.Frontend.Views.Stations
+{
+    public class StationsViewModel
+    {
+        public StationsViewModel()
+        {
+        }
+    }
+}