Better View and Model separation

Just need to hook in the ViewModels themselves