diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index eeb362a..6bee1e7 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -69,6 +69,7 @@
 #include <sys/time.h>
 
 /* Forward and back buttons on the mouse */
+
 static gboolean mouse_extra_buttons = TRUE;
 static int mouse_forward_button = 9;
 static int mouse_back_button = 8;
@@ -93,7 +94,7 @@ static void close_slot (NautilusWindow     *window,
 
 #define NOTIFICATION_TIMEOUT 6 /*s */
 
-struct _NautilusWindowPrivate
+typedef struct
 {
     GtkWidget *notebook;
 
@@ -139,7 +140,7 @@ struct _NautilusWindowPrivate
 
     guint sidebar_width_handler_id;
     guint bookmarks_id;
-};
+}NautilusWindowPrivate;
 
 enum
 {
@@ -157,7 +158,7 @@ enum
 static guint signals[LAST_SIGNAL] = { 0 };
 static GParamSpec *properties[NUM_PROPERTIES] = { NULL, };
 
-G_DEFINE_TYPE_WITH_PRIVATE (NautilusWindow, nautilus_window, GTK_TYPE_APPLICATION_WINDOW);
+G_DEFINE_TYPE_WITH_PRIVATE (NautilusWindow, nautilus_window, GTK_TYPE_APPLICATION_WINDOW)
 
 static const struct
 {
@@ -319,8 +320,9 @@ action_tab_previous (GSimpleAction *action,
                      gpointer       user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
-    nautilus_notebook_prev_page (NAUTILUS_NOTEBOOK (window->priv->notebook));
+    nautilus_notebook_prev_page (NAUTILUS_NOTEBOOK (priv->notebook));
 }
 
 static void
@@ -329,8 +331,9 @@ action_tab_next (GSimpleAction *action,
                  gpointer       user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
-    nautilus_notebook_next_page (NAUTILUS_NOTEBOOK (window->priv->notebook));
+    nautilus_notebook_next_page (NAUTILUS_NOTEBOOK (priv->notebook));
 }
 
 static void
@@ -339,8 +342,9 @@ action_tab_move_left (GSimpleAction *action,
                       gpointer       user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
-    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->priv->notebook), -1);
+    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (priv->notebook), -1);
 }
 
 static void
@@ -349,8 +353,9 @@ action_tab_move_right (GSimpleAction *action,
                        gpointer       user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
-    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->priv->notebook), 1);
+    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (priv->notebook), 1);
 }
 
 static void
@@ -358,11 +363,12 @@ action_go_to_tab (GSimpleAction *action,
                   GVariant      *value,
                   gpointer       user_data)
 {
-    NautilusWindow *window = NAUTILUS_WINDOW (user_data);
+    NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     GtkNotebook *notebook;
     gint16 num;
 
-    notebook = GTK_NOTEBOOK (window->priv->notebook);
+    notebook = GTK_NOTEBOOK (priv->notebook);
 
     num = g_variant_get_int32 (value);
     if (num < gtk_notebook_get_n_pages (notebook))
@@ -436,7 +442,8 @@ action_toggle_state_view_button (GSimpleAction *action,
 static void
 on_location_changed (NautilusWindow *window)
 {
-    gtk_places_sidebar_set_location (GTK_PLACES_SIDEBAR (window->priv->places_sidebar),
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    gtk_places_sidebar_set_location (GTK_PLACES_SIDEBAR (priv->places_sidebar),
                                      nautilus_window_slot_get_location (nautilus_window_get_active_slot (window)));
 }
 
@@ -459,8 +466,8 @@ notebook_switch_page_cb (GtkNotebook    *notebook,
 {
     NautilusWindowSlot *slot;
     GtkWidget *widget;
-
-    widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (window->priv->notebook), page_num);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), page_num);
     g_assert (widget != NULL);
 
     /* find slot corresponding to the target page */
@@ -549,21 +556,21 @@ nautilus_window_initialize_slot (NautilusWindow          *window,
     g_assert (NAUTILUS_IS_WINDOW_SLOT (slot));
 
     connect_slot (window, slot);
-
-    g_signal_handlers_block_by_func (window->priv->notebook,
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    g_signal_handlers_block_by_func (priv->notebook,
                                      G_CALLBACK (notebook_switch_page_cb),
                                      window);
-    nautilus_notebook_add_tab (NAUTILUS_NOTEBOOK (window->priv->notebook),
+    nautilus_notebook_add_tab (NAUTILUS_NOTEBOOK (priv->notebook),
                                slot,
                                (flags & NAUTILUS_WINDOW_OPEN_SLOT_APPEND) != 0 ?
                                -1 :
-                               gtk_notebook_get_current_page (GTK_NOTEBOOK (window->priv->notebook)) + 1,
+                               gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)) + 1,
                                FALSE);
-    g_signal_handlers_unblock_by_func (window->priv->notebook,
+    g_signal_handlers_unblock_by_func (priv->notebook,
                                        G_CALLBACK (notebook_switch_page_cb),
                                        window);
 
-    window->priv->slots = g_list_append (window->priv->slots, slot);
+    priv->slots = g_list_append (priv->slots, slot);
     g_signal_emit (window, signals[SLOT_ADDED], 0, slot);
 }
 
@@ -654,11 +661,12 @@ bookmark_list_get_uri_index (GList *list,
 static void
 unset_focus_widget (NautilusWindow *window)
 {
-    if (window->priv->last_focus_widget != NULL)
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    if (priv->last_focus_widget != NULL)
     {
-        g_object_remove_weak_pointer (G_OBJECT (window->priv->last_focus_widget),
-                                      (gpointer *) &window->priv->last_focus_widget);
-        window->priv->last_focus_widget = NULL;
+        g_object_remove_weak_pointer (G_OBJECT (priv->last_focus_widget),
+                                      (gpointer *) &priv->last_focus_widget);
+        priv->last_focus_widget = NULL;
     }
 }
 
@@ -666,15 +674,15 @@ static void
 remember_focus_widget (NautilusWindow *window)
 {
     GtkWidget *focus_widget;
-
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     focus_widget = gtk_window_get_focus (GTK_WINDOW (window));
     if (focus_widget != NULL)
     {
         unset_focus_widget (window);
 
-        window->priv->last_focus_widget = focus_widget;
+        priv->last_focus_widget = focus_widget;
         g_object_add_weak_pointer (G_OBJECT (focus_widget),
-                                   (gpointer *) &(window->priv->last_focus_widget));
+                                   (gpointer *) &(priv->last_focus_widget));
     }
 }
 
@@ -696,9 +704,10 @@ nautilus_window_grab_focus (GtkWidget *widget)
 static void
 restore_focus_widget (NautilusWindow *window)
 {
-    if (window->priv->last_focus_widget != NULL)
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    if (priv->last_focus_widget != NULL)
     {
-        gtk_widget_grab_focus (window->priv->last_focus_widget);
+        gtk_widget_grab_focus (priv->last_focus_widget);
         unset_focus_widget (window);
     }
 }
@@ -707,7 +716,8 @@ static void
 location_entry_cancel_callback (GtkWidget      *widget,
                                 NautilusWindow *window)
 {
-    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar), FALSE);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (priv->toolbar), FALSE);
 
     restore_focus_widget (window);
 }
@@ -717,7 +727,8 @@ location_entry_location_changed_callback (GtkWidget      *widget,
                                           GFile          *location,
                                           NautilusWindow *window)
 {
-    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar), FALSE);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (priv->toolbar), FALSE);
 
     restore_focus_widget (window);
 
@@ -731,6 +742,7 @@ close_slot (NautilusWindow     *window,
 {
     int page_num;
     GtkNotebook *notebook;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
     g_assert (NAUTILUS_IS_WINDOW_SLOT (slot));
 
@@ -738,11 +750,11 @@ close_slot (NautilusWindow     *window,
 
     disconnect_slot (window, slot);
 
-    window->priv->slots = g_list_remove (window->priv->slots, slot);
+    priv->slots = g_list_remove (priv->slots, slot);
 
     g_signal_emit (window, signals[SLOT_REMOVED], 0, slot);
 
-    notebook = GTK_NOTEBOOK (window->priv->notebook);
+    notebook = GTK_NOTEBOOK (priv->notebook);
 
     if (remove_from_notebook)
     {
@@ -833,6 +845,7 @@ nautilus_window_sync_allow_stop (NautilusWindow     *window,
     GAction *stop_action;
     GAction *reload_action;
     gboolean allow_stop, slot_is_active, slot_allow_stop;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
     stop_action = g_action_map_lookup_action (G_ACTION_MAP (window),
                                               "stop");
@@ -858,9 +871,9 @@ nautilus_window_sync_allow_stop (NautilusWindow     *window,
 
         /* Avoid updating the notebook if we are calling on dispose or
          * on removal of a notebook tab */
-        if (nautilus_notebook_contains_slot (NAUTILUS_NOTEBOOK (window->priv->notebook), slot))
+        if (nautilus_notebook_contains_slot (NAUTILUS_NOTEBOOK (priv->notebook), slot))
         {
-            nautilus_notebook_sync_loading (NAUTILUS_NOTEBOOK (window->priv->notebook), slot);
+            nautilus_notebook_sync_loading (NAUTILUS_NOTEBOOK (priv->notebook), slot);
         }
     }
 }
@@ -868,21 +881,23 @@ nautilus_window_sync_allow_stop (NautilusWindow     *window,
 GtkWidget *
 nautilus_window_get_notebook (NautilusWindow *window)
 {
-    return window->priv->notebook;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    return priv->notebook;
 }
 
 static gboolean
 save_sidebar_width_cb (gpointer user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
-    window->priv->sidebar_width_handler_id = 0;
+    priv->sidebar_width_handler_id = 0;
 
-    DEBUG ("Saving sidebar width: %d", window->priv->side_pane_width);
+    DEBUG ("Saving sidebar width: %d", priv->side_pane_width);
 
     g_settings_set_int (nautilus_window_state,
                         NAUTILUS_WINDOW_STATE_SIDEBAR_WIDTH,
-                        window->priv->side_pane_width);
+                        priv->side_pane_width);
 
     return FALSE;
 }
@@ -893,22 +908,20 @@ side_pane_size_allocate_callback (GtkWidget     *widget,
                                   GtkAllocation *allocation,
                                   gpointer       user_data)
 {
-    NautilusWindow *window;
-
-    window = user_data;
-
-    if (window->priv->sidebar_width_handler_id != 0)
+    NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    if (priv->sidebar_width_handler_id != 0)
     {
-        g_source_remove (window->priv->sidebar_width_handler_id);
-        window->priv->sidebar_width_handler_id = 0;
+        g_source_remove (priv->sidebar_width_handler_id);
+        priv->sidebar_width_handler_id = 0;
     }
 
-    if (allocation->width != window->priv->side_pane_width &&
+    if (allocation->width != priv->side_pane_width &&
         allocation->width > 1)
     {
-        window->priv->side_pane_width = allocation->width;
+        priv->side_pane_width = allocation->width;
 
-        window->priv->sidebar_width_handler_id =
+        priv->sidebar_width_handler_id =
             g_idle_add (save_sidebar_width_cb, window);
     }
 }
@@ -916,14 +929,15 @@ side_pane_size_allocate_callback (GtkWidget     *widget,
 static void
 setup_side_pane_width (NautilusWindow *window)
 {
-    g_return_if_fail (window->priv->sidebar != NULL);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    g_return_if_fail (priv->sidebar != NULL);
 
-    window->priv->side_pane_width =
+    priv->side_pane_width =
         g_settings_get_int (nautilus_window_state,
                             NAUTILUS_WINDOW_STATE_SIDEBAR_WIDTH);
 
-    gtk_paned_set_position (GTK_PANED (window->priv->content_paned),
-                            window->priv->side_pane_width);
+    gtk_paned_set_position (GTK_PANED (priv->content_paned),
+                            priv->side_pane_width);
 }
 
 /* Callback used when the places sidebar changes location; we need to change the displayed folder */
@@ -1110,7 +1124,8 @@ void
 nautilus_window_start_dnd (NautilusWindow *window,
                            GdkDragContext *context)
 {
-    gtk_places_sidebar_set_drop_targets_visible (GTK_PLACES_SIDEBAR (window->priv->places_sidebar),
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    gtk_places_sidebar_set_drop_targets_visible (GTK_PLACES_SIDEBAR (priv->places_sidebar),
                                                  TRUE,
                                                  context);
 }
@@ -1119,7 +1134,8 @@ void
 nautilus_window_end_dnd (NautilusWindow *window,
                          GdkDragContext *context)
 {
-    gtk_places_sidebar_set_drop_targets_visible (GTK_PLACES_SIDEBAR (window->priv->places_sidebar),
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    gtk_places_sidebar_set_drop_targets_visible (GTK_PLACES_SIDEBAR (priv->places_sidebar),
                                                  FALSE,
                                                  context);
 }
@@ -1236,16 +1252,17 @@ action_properties (GSimpleAction *action,
                    gpointer       user_data)
 {
     NautilusWindow *window = NAUTILUS_WINDOW (user_data);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     GList *list;
     NautilusFile *file;
 
-    file = nautilus_file_get (window->priv->selected_file);
+    file = nautilus_file_get (priv->selected_file);
 
     list = g_list_append (NULL, file);
     nautilus_properties_window_present (list, GTK_WIDGET (window), NULL);
     nautilus_file_list_free (list);
 
-    g_clear_object (&window->priv->selected_file);
+    g_clear_object (&priv->selected_file);
 }
 
 static gboolean
@@ -1280,11 +1297,12 @@ action_format (GSimpleAction *action,
                gpointer       user_data)
 {
     NautilusWindow *window = NAUTILUS_WINDOW (user_data);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     GAppInfo *app_info;
     gchar *cmdline, *device_identifier, *xid_string;
     gint xid;
 
-    device_identifier = g_volume_get_identifier (window->priv->selected_volume,
+    device_identifier = g_volume_get_identifier (priv->selected_volume,
                                                  G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE);
     xid = (gint) gdk_x11_window_get_xid (gtk_widget_get_window (GTK_WIDGET (window)));
     xid_string = g_strdup_printf ("%d", xid);
@@ -1301,7 +1319,7 @@ action_format (GSimpleAction *action,
     g_free (device_identifier);
     g_free (xid_string);
     g_clear_object (&app_info);
-    g_clear_object (&window->priv->selected_volume);
+    g_clear_object (&priv->selected_volume);
 }
 
 static void
@@ -1322,12 +1340,13 @@ places_sidebar_populate_popup_cb (GtkPlacesSidebar *sidebar,
                                   gpointer          user_data)
 {
     NautilusWindow *window = NAUTILUS_WINDOW (user_data);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     GFile *trash;
     GtkWidget *menu_item;
     GAction *action;
 
-    g_clear_object (&window->priv->selected_file);
-    g_clear_object (&window->priv->selected_volume);
+    g_clear_object (&priv->selected_file);
+    g_clear_object (&priv->selected_volume);
 
     if (selected_file)
     {
@@ -1352,7 +1371,7 @@ places_sidebar_populate_popup_cb (GtkPlacesSidebar *sidebar,
 
         if (g_file_is_native (selected_file))
         {
-            window->priv->selected_file = g_object_ref (selected_file);
+            priv->selected_file = g_object_ref (selected_file);
             add_menu_separator (menu);
 
             menu_item = gtk_model_button_new ();
@@ -1373,7 +1392,7 @@ places_sidebar_populate_popup_cb (GtkPlacesSidebar *sidebar,
             g_object_set (menu_item, "text", _("_Format…"), NULL);
             if (selected_volume != NULL && G_IS_VOLUME (selected_volume))
             {
-                window->priv->selected_volume = g_object_ref (selected_volume);
+                priv->selected_volume = g_object_ref (selected_volume);
             }
             gtk_container_add (GTK_CONTAINER (menu), menu_item);
             gtk_widget_show (menu_item);
@@ -1390,65 +1409,68 @@ places_sidebar_populate_popup_cb (GtkPlacesSidebar *sidebar,
 static void
 nautilus_window_set_up_sidebar (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     setup_side_pane_width (window);
-    g_signal_connect (window->priv->sidebar,
+    g_signal_connect (priv->sidebar,
                       "size-allocate",
                       G_CALLBACK (side_pane_size_allocate_callback),
                       window);
 
-    gtk_places_sidebar_set_open_flags (GTK_PLACES_SIDEBAR (window->priv->places_sidebar),
+    gtk_places_sidebar_set_open_flags (GTK_PLACES_SIDEBAR (priv->places_sidebar),
                                        (GTK_PLACES_OPEN_NORMAL
                                         | GTK_PLACES_OPEN_NEW_TAB
                                         | GTK_PLACES_OPEN_NEW_WINDOW));
 
-    g_signal_connect_swapped (window->priv->places_sidebar, "open-location",
+    g_signal_connect_swapped (priv->places_sidebar, "open-location",
                               G_CALLBACK (open_location_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "show-error-message",
+    g_signal_connect (priv->places_sidebar, "show-error-message",
                       G_CALLBACK (places_sidebar_show_error_message_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "drag-action-requested",
+    g_signal_connect (priv->places_sidebar, "drag-action-requested",
                       G_CALLBACK (places_sidebar_drag_action_requested_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "drag-action-ask",
+    g_signal_connect (priv->places_sidebar, "drag-action-ask",
                       G_CALLBACK (places_sidebar_drag_action_ask_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "drag-perform-drop",
+    g_signal_connect (priv->places_sidebar, "drag-perform-drop",
                       G_CALLBACK (places_sidebar_drag_perform_drop_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "populate-popup",
+    g_signal_connect (priv->places_sidebar, "populate-popup",
                       G_CALLBACK (places_sidebar_populate_popup_cb), window);
-    g_signal_connect (window->priv->places_sidebar, "unmount",
+    g_signal_connect (priv->places_sidebar, "unmount",
                       G_CALLBACK (places_sidebar_unmount_operation_cb), window);
 }
 
 void
 nautilus_window_hide_sidebar (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     DEBUG ("Called hide_sidebar()");
 
-    gtk_widget_hide (window->priv->sidebar);
+    gtk_widget_hide (priv->sidebar);
 }
 
 void
 nautilus_window_show_sidebar (NautilusWindow *window)
 {
     DEBUG ("Called show_sidebar()");
-
-    if (window->priv->disable_chrome)
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    if (priv->disable_chrome)
     {
         return;
     }
 
-    gtk_widget_show (window->priv->sidebar);
+    gtk_widget_show (priv->sidebar);
     setup_side_pane_width (window);
 }
 
 static inline NautilusWindowSlot *
 get_first_inactive_slot (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     GList *l;
     NautilusWindowSlot *slot;
 
-    for (l = window->priv->slots; l != NULL; l = l->next)
+    for (l = priv->slots; l != NULL; l = l->next)
     {
         slot = NAUTILUS_WINDOW_SLOT (l->data);
-        if (slot != window->priv->active_slot)
+        if (slot != priv->active_slot)
         {
             return slot;
         }
@@ -1461,6 +1483,7 @@ void
 nautilus_window_slot_close (NautilusWindow     *window,
                             NautilusWindowSlot *slot)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     NautilusWindowSlot *next_slot;
 
     DEBUG ("Requesting to remove slot %p from window %p", slot, window);
@@ -1469,7 +1492,7 @@ nautilus_window_slot_close (NautilusWindow     *window,
         return;
     }
 
-    if (window->priv->active_slot == slot)
+    if (priv->active_slot == slot)
     {
         next_slot = get_first_inactive_slot (window);
         nautilus_window_set_active_slot (window, next_slot);
@@ -1478,7 +1501,7 @@ nautilus_window_slot_close (NautilusWindow     *window,
     close_slot (window, slot, TRUE);
 
     /* If that was the last slot in the window, close the window. */
-    if (window->priv->slots == NULL)
+    if (priv->slots == NULL)
     {
         DEBUG ("Last slot removed, closing the window");
         nautilus_window_close (window);
@@ -1488,13 +1511,14 @@ nautilus_window_slot_close (NautilusWindow     *window,
 static void
 nautilus_window_sync_bookmarks (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     gboolean can_bookmark = FALSE;
     NautilusWindowSlot *slot;
     NautilusBookmarkList *bookmarks;
     GAction *action;
     GFile *location;
 
-    slot = window->priv->active_slot;
+    slot = priv->active_slot;
     location = nautilus_window_slot_get_location (slot);
 
     if (location != NULL)
@@ -1511,12 +1535,13 @@ nautilus_window_sync_bookmarks (NautilusWindow *window)
 void
 nautilus_window_sync_location_widgets (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     NautilusWindowSlot *slot;
     GFile *location;
     GAction *action;
     gboolean enabled;
 
-    slot = window->priv->active_slot;
+    slot = priv->active_slot;
     location = nautilus_window_slot_get_location (slot);
 
     /* Change the location bar and path bar to match the current location. */
@@ -1525,10 +1550,10 @@ nautilus_window_sync_location_widgets (NautilusWindow *window)
         GtkWidget *location_entry;
         GtkWidget *path_bar;
 
-        location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar));
+        location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (priv->toolbar));
         nautilus_location_entry_set_location (NAUTILUS_LOCATION_ENTRY (location_entry), location);
 
-        path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (window->priv->toolbar));
+        path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (priv->toolbar));
         nautilus_path_bar_set_path (NAUTILUS_PATH_BAR (path_bar), location);
     }
 
@@ -1546,13 +1571,14 @@ nautilus_window_sync_location_widgets (NautilusWindow *window)
 static GtkWidget *
 nautilus_window_ensure_location_entry (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     GtkWidget *location_entry;
 
     remember_focus_widget (window);
 
-    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar), TRUE);
+    nautilus_toolbar_set_show_location_entry (NAUTILUS_TOOLBAR (priv->toolbar), TRUE);
 
-    location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar));
+    location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (priv->toolbar));
     gtk_widget_grab_focus (location_entry);
 
     return location_entry;
@@ -1561,46 +1587,48 @@ nautilus_window_ensure_location_entry (NautilusWindow *window)
 static void
 remove_notifications (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     GtkRevealerTransitionType transition_type;
 
     /* Hide it inmediatily so we can animate the new notification. */
-    transition_type = gtk_revealer_get_transition_type (GTK_REVEALER (window->priv->notification_delete));
-    gtk_revealer_set_transition_type (GTK_REVEALER (window->priv->notification_delete),
+    transition_type = gtk_revealer_get_transition_type (GTK_REVEALER (priv->notification_delete));
+    gtk_revealer_set_transition_type (GTK_REVEALER (priv->notification_delete),
                                       GTK_REVEALER_TRANSITION_TYPE_NONE);
-    gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_delete),
+    gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_delete),
                                    FALSE);
-    gtk_revealer_set_transition_type (GTK_REVEALER (window->priv->notification_delete),
+    gtk_revealer_set_transition_type (GTK_REVEALER (priv->notification_delete),
                                       transition_type);
-    if (window->priv->notification_delete_timeout_id != 0)
+    if (priv->notification_delete_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_delete_timeout_id);
-        window->priv->notification_delete_timeout_id = 0;
+        g_source_remove (priv->notification_delete_timeout_id);
+        priv->notification_delete_timeout_id = 0;
     }
 
-    transition_type = gtk_revealer_get_transition_type (GTK_REVEALER (window->priv->notification_operation));
-    gtk_revealer_set_transition_type (GTK_REVEALER (window->priv->notification_operation),
+    transition_type = gtk_revealer_get_transition_type (GTK_REVEALER (priv->notification_operation));
+    gtk_revealer_set_transition_type (GTK_REVEALER (priv->notification_operation),
                                       GTK_REVEALER_TRANSITION_TYPE_NONE);
-    gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_operation),
+    gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_operation),
                                    FALSE);
-    gtk_revealer_set_transition_type (GTK_REVEALER (window->priv->notification_operation),
+    gtk_revealer_set_transition_type (GTK_REVEALER (priv->notification_operation),
                                       transition_type);
-    if (window->priv->notification_operation_timeout_id != 0)
+    if (priv->notification_operation_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_operation_timeout_id);
-        window->priv->notification_operation_timeout_id = 0;
+        g_source_remove (priv->notification_operation_timeout_id);
+        priv->notification_operation_timeout_id = 0;
     }
 }
 
 static void
 hide_notification_delete (NautilusWindow *window)
 {
-    if (window->priv->notification_delete_timeout_id != 0)
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    if (priv->notification_delete_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_delete_timeout_id);
-        window->priv->notification_delete_timeout_id = 0;
+        g_source_remove (priv->notification_delete_timeout_id);
+        priv->notification_delete_timeout_id = 0;
     }
 
-    gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_delete), FALSE);
+    gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_delete), FALSE);
 }
 
 static void
@@ -1657,6 +1685,7 @@ static void
 nautilus_window_on_undo_changed (NautilusFileUndoManager *manager,
                                  NautilusWindow          *window)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     NautilusFileUndoInfo *undo_info;
     NautilusFileUndoManagerState state;
     gchar *label;
@@ -1668,7 +1697,7 @@ nautilus_window_on_undo_changed (NautilusFileUndoManager *manager,
     if (undo_info != NULL &&
         state == NAUTILUS_FILE_UNDO_MANAGER_STATE_UNDO &&
         nautilus_file_undo_info_get_op_type (undo_info) == NAUTILUS_FILE_UNDO_OP_MOVE_TO_TRASH &&
-        !window->priv->disable_chrome)
+        !priv->disable_chrome)
     {
         files = nautilus_file_undo_info_trash_get_files (NAUTILUS_FILE_UNDO_INFO_TRASH (undo_info));
 
@@ -1678,9 +1707,9 @@ nautilus_window_on_undo_changed (NautilusFileUndoManager *manager,
         if (g_list_length (files) > 0 && gtk_window_has_toplevel_focus (GTK_WINDOW (window)))
         {
             label = nautilus_window_notification_delete_get_label (undo_info, files);
-            gtk_label_set_markup (GTK_LABEL (window->priv->notification_delete_label), label);
-            gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_delete), TRUE);
-            window->priv->notification_delete_timeout_id = g_timeout_add_seconds (NOTIFICATION_TIMEOUT,
+            gtk_label_set_markup (GTK_LABEL (priv->notification_delete_label), label);
+            gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_delete), TRUE);
+            priv->notification_delete_timeout_id = g_timeout_add_seconds (NOTIFICATION_TIMEOUT,
                                                                                   (GSourceFunc) nautilus_window_on_notification_delete_timeout,
                                                                                   window);
             g_free (label);
@@ -1696,21 +1725,23 @@ nautilus_window_on_undo_changed (NautilusFileUndoManager *manager,
 static void
 hide_notification_operation (NautilusWindow *window)
 {
-    if (window->priv->notification_operation_timeout_id != 0)
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    if (priv->notification_operation_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_operation_timeout_id);
-        window->priv->notification_operation_timeout_id = 0;
+        g_source_remove (priv->notification_operation_timeout_id);
+        priv->notification_operation_timeout_id = 0;
     }
 
-    gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_operation), FALSE);
-    g_clear_object (&window->priv->folder_to_open);
+    gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_operation), FALSE);
+    g_clear_object (&priv->folder_to_open);
 }
 
 static void
 on_notification_operation_open_clicked (GtkWidget      *notification,
                                         NautilusWindow *window)
 {
-    nautilus_window_open_location_full (window, window->priv->folder_to_open,
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    nautilus_window_open_location_full (window, priv->folder_to_open,
                                         0, NULL, NULL);
     hide_notification_operation (window);
 }
@@ -1735,39 +1766,40 @@ nautilus_window_show_operation_notification (NautilusWindow *window,
                                              gchar          *main_label,
                                              GFile          *folder_to_open)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     gchar *button_label;
     gchar *folder_name;
     NautilusFile *folder;
     GFile *current_location;
 
-    current_location = nautilus_window_slot_get_location (window->priv->active_slot);
+    current_location = nautilus_window_slot_get_location (priv->active_slot);
     if (gtk_window_has_toplevel_focus (GTK_WINDOW (window)) &&
-        !window->priv->disable_chrome)
+        !priv->disable_chrome)
     {
         remove_notifications (window);
-        gtk_label_set_text (GTK_LABEL (window->priv->notification_operation_label),
+        gtk_label_set_text (GTK_LABEL (priv->notification_operation_label),
                             main_label);
 
         if (g_file_equal (folder_to_open, current_location))
         {
-            gtk_widget_hide (window->priv->notification_operation_open);
+            gtk_widget_hide (priv->notification_operation_open);
         }
         else
         {
-            gtk_widget_show (window->priv->notification_operation_open);
-            window->priv->folder_to_open = g_object_ref (folder_to_open);
+            gtk_widget_show (priv->notification_operation_open);
+            priv->folder_to_open = g_object_ref (folder_to_open);
             folder = nautilus_file_get (folder_to_open);
             folder_name = nautilus_file_get_display_name (folder);
             button_label = g_strdup_printf (_("Open %s"), folder_name);
-            gtk_button_set_label (GTK_BUTTON (window->priv->notification_operation_open),
+            gtk_button_set_label (GTK_BUTTON (priv->notification_operation_open),
                                   button_label);
             nautilus_file_unref (folder);
             g_free (folder_name);
             g_free (button_label);
         }
 
-        gtk_revealer_set_reveal_child (GTK_REVEALER (window->priv->notification_operation), TRUE);
-        window->priv->notification_operation_timeout_id = g_timeout_add_seconds (NOTIFICATION_TIMEOUT,
+        gtk_revealer_set_reveal_child (GTK_REVEALER (priv->notification_operation), TRUE);
+        priv->notification_operation_timeout_id = g_timeout_add_seconds (NOTIFICATION_TIMEOUT,
                                                                                  (GSourceFunc) on_notification_operation_timeout,
                                                                                  window);
     }
@@ -1778,10 +1810,11 @@ path_bar_location_changed_callback (GtkWidget      *widget,
                                     GFile          *location,
                                     NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     NautilusWindowSlot *slot;
     int i;
 
-    slot = window->priv->active_slot;
+    slot = priv->active_slot;
     /* check whether we already visited the target location */
     i = bookmark_list_get_uri_index (nautilus_window_slot_get_back_history (slot), location);
     if (i >= 0)
@@ -1808,8 +1841,9 @@ notebook_popup_menu_move_left_cb (GtkMenuItem *menuitem,
                                   gpointer     user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
-    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->priv->notebook), -1);
+    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (priv->notebook), -1);
 }
 
 static void
@@ -1817,8 +1851,9 @@ notebook_popup_menu_move_right_cb (GtkMenuItem *menuitem,
                                    gpointer     user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
-    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (window->priv->notebook), 1);
+    nautilus_notebook_reorder_current_child_relative (NAUTILUS_NOTEBOOK (priv->notebook), 1);
 }
 
 static void
@@ -1827,8 +1862,9 @@ notebook_popup_menu_close_cb (GtkMenuItem *menuitem,
 {
     NautilusWindow *window = user_data;
     NautilusWindowSlot *slot;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
-    slot = window->priv->active_slot;
+    slot = priv->active_slot;
     nautilus_window_slot_close (window, slot);
 }
 
@@ -1836,12 +1872,13 @@ static void
 notebook_popup_menu_show (NautilusWindow *window,
                           GdkEventButton *event)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     GtkWidget *popup;
     GtkWidget *item;
     gboolean can_move_left, can_move_right;
     NautilusNotebook *notebook;
 
-    notebook = NAUTILUS_NOTEBOOK (window->priv->notebook);
+    notebook = NAUTILUS_NOTEBOOK (priv->notebook);
 
     can_move_left = nautilus_notebook_can_reorder_current_child_relative (notebook, -1);
     can_move_right = nautilus_notebook_can_reorder_current_child_relative (notebook, 1);
@@ -1926,22 +1963,24 @@ notebook_popup_menu_cb (GtkWidget *widget,
 GtkWidget *
 nautilus_window_get_toolbar (NautilusWindow *window)
 {
-    return window->priv->toolbar;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+    return priv->toolbar;
 }
 
 static void
 setup_toolbar (NautilusWindow *window)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     GtkWidget *path_bar;
     GtkWidget *location_entry;
 
-    g_object_set (window->priv->toolbar, "window", window, NULL);
+    g_object_set (priv->toolbar, "window", window, NULL);
     g_object_bind_property (window, "disable-chrome",
-                            window->priv->toolbar, "visible",
+                            priv->toolbar, "visible",
                             G_BINDING_INVERT_BOOLEAN);
 
     /* connect to the pathbar signals */
-    path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (window->priv->toolbar));
+    path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (priv->toolbar));
 
     g_signal_connect_object (path_bar, "path-clicked",
                              G_CALLBACK (path_bar_location_changed_callback), window, 0);
@@ -1949,7 +1988,7 @@ setup_toolbar (NautilusWindow *window)
                               G_CALLBACK (open_location_cb), window);
 
     /* connect to the location entry signals */
-    location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar));
+    location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (priv->toolbar));
 
     g_signal_connect_object (location_entry, "location-changed",
                              G_CALLBACK (location_entry_location_changed_callback), window, 0);
@@ -1964,6 +2003,7 @@ notebook_page_removed_cb (GtkNotebook *notebook,
                           gpointer     user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (page), *next_slot;
     gboolean dnd_slot;
 
@@ -1973,7 +2013,7 @@ notebook_page_removed_cb (GtkNotebook *notebook,
         return;
     }
 
-    if (window->priv->active_slot == slot)
+    if (priv->active_slot == slot)
     {
         next_slot = get_first_inactive_slot (window);
         nautilus_window_set_active_slot (window, next_slot);
@@ -1989,6 +2029,7 @@ notebook_page_added_cb (GtkNotebook *notebook,
                         gpointer     user_data)
 {
     NautilusWindow *window = user_data;
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (page);
     NautilusWindowSlot *dummy_slot;
     gboolean dnd_slot;
@@ -2003,12 +2044,12 @@ notebook_page_added_cb (GtkNotebook *notebook,
                        GINT_TO_POINTER (FALSE));
 
     nautilus_window_slot_set_window (slot, window);
-    window->priv->slots = g_list_append (window->priv->slots, slot);
+    priv->slots = g_list_append (priv->slots, slot);
     g_signal_emit (window, signals[SLOT_ADDED], 0, slot);
 
     nautilus_window_set_active_slot (window, slot);
 
-    dummy_slot = g_list_nth_data (window->priv->slots, 0);
+    dummy_slot = g_list_nth_data (priv->slots, 0);
     if (dummy_slot != NULL)
     {
         close_slot (window, dummy_slot, TRUE);
@@ -2036,6 +2077,7 @@ notebook_create_window_cb (GtkNotebook *notebook,
     app = NAUTILUS_APPLICATION (g_application_get_default ());
     new_window = nautilus_application_create_window
                      (app, gtk_widget_get_screen (GTK_WIDGET (notebook)));
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(new_window);
 
     slot = NAUTILUS_WINDOW_SLOT (page);
     g_object_set_data (G_OBJECT (slot), "dnd-window-slot",
@@ -2043,31 +2085,33 @@ notebook_create_window_cb (GtkNotebook *notebook,
 
     gtk_window_set_position (GTK_WINDOW (new_window), GTK_WIN_POS_MOUSE);
 
-    return GTK_NOTEBOOK (new_window->priv->notebook);
+    return GTK_NOTEBOOK (priv->notebook);
 }
 
 static void
 setup_notebook (NautilusWindow *window)
 {
-    g_signal_connect (window->priv->notebook, "tab-close-request",
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+
+    g_signal_connect (priv->notebook, "tab-close-request",
                       G_CALLBACK (notebook_tab_close_requested),
                       window);
-    g_signal_connect (window->priv->notebook, "popup-menu",
+    g_signal_connect (priv->notebook, "popup-menu",
                       G_CALLBACK (notebook_popup_menu_cb),
                       window);
-    g_signal_connect (window->priv->notebook, "switch-page",
+    g_signal_connect (priv->notebook, "switch-page",
                       G_CALLBACK (notebook_switch_page_cb),
                       window);
-    g_signal_connect (window->priv->notebook, "create-window",
+    g_signal_connect (priv->notebook, "create-window",
                       G_CALLBACK (notebook_create_window_cb),
                       window);
-    g_signal_connect (window->priv->notebook, "page-added",
+    g_signal_connect (priv->notebook, "page-added",
                       G_CALLBACK (notebook_page_added_cb),
                       window);
-    g_signal_connect (window->priv->notebook, "page-removed",
+    g_signal_connect (priv->notebook, "page-removed",
                       G_CALLBACK (notebook_page_removed_cb),
                       window);
-    g_signal_connect_after (window->priv->notebook, "button-press-event",
+    g_signal_connect_after (priv->notebook, "button-press-event",
                             G_CALLBACK (notebook_button_press_cb),
                             window);
 }
@@ -2171,6 +2215,7 @@ nautilus_window_constructed (GObject *self)
     NautilusApplication *application;
 
     window = NAUTILUS_WINDOW (self);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
     nautilus_profile_start (NULL);
 
@@ -2200,11 +2245,11 @@ nautilus_window_constructed (GObject *self)
     nautilus_window_initialize_slot (window, slot, 0);
     nautilus_window_set_active_slot (window, slot);
 
-    window->priv->bookmarks_id =
+    priv->bookmarks_id =
         g_signal_connect_swapped (nautilus_application_get_bookmarks (application), "changed",
                                   G_CALLBACK (nautilus_window_sync_bookmarks), window);
 
-    nautilus_toolbar_on_window_constructed (NAUTILUS_TOOLBAR (window->priv->toolbar));
+    nautilus_toolbar_on_window_constructed (NAUTILUS_TOOLBAR (priv->toolbar));
 
     nautilus_profile_end (NULL);
 }
@@ -2216,14 +2261,14 @@ nautilus_window_set_property (GObject      *object,
                               GParamSpec   *pspec)
 {
     NautilusWindow *window;
-
     window = NAUTILUS_WINDOW (object);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
     switch (arg_id)
     {
         case PROP_DISABLE_CHROME:
         {
-            window->priv->disable_chrome = g_value_get_boolean (value);
+            priv->disable_chrome = g_value_get_boolean (value);
         }
         break;
 
@@ -2242,14 +2287,14 @@ nautilus_window_get_property (GObject    *object,
                               GParamSpec *pspec)
 {
     NautilusWindow *window;
-
     window = NAUTILUS_WINDOW (object);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
     switch (arg_id)
     {
         case PROP_DISABLE_CHROME:
         {
-            g_value_set_boolean (value, window->priv->disable_chrome);
+            g_value_set_boolean (value, priv->disable_chrome);
         }
         break;
     }
@@ -2260,11 +2305,13 @@ sort_slots_active_last (NautilusWindowSlot *a,
                         NautilusWindowSlot *b,
                         NautilusWindow     *window)
 {
-    if (window->priv->active_slot == a)
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+
+    if (priv->active_slot == a)
     {
         return 1;
     }
-    if (window->priv->active_slot == b)
+    if (priv->active_slot == b)
     {
         return -1;
     }
@@ -2290,11 +2337,13 @@ nautilus_window_destroy (GtkWidget *object)
 
     window = NAUTILUS_WINDOW (object);
 
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+
     DEBUG ("Destroying window");
 
     /* close all slots safely */
-    slots_copy = g_list_copy (window->priv->slots);
-    if (window->priv->active_slot != NULL)
+    slots_copy = g_list_copy (priv->slots);
+    if (priv->active_slot != NULL)
     {
         /* Make sure active slot is last one to be closed, to avoid default activation
          * of others slots when closing the active one, see bug #741952  */
@@ -2304,16 +2353,16 @@ nautilus_window_destroy (GtkWidget *object)
     g_list_free (slots_copy);
 
     /* the slots list should now be empty */
-    g_assert (window->priv->slots == NULL);
+    g_assert (priv->slots == NULL);
 
-    window->priv->active_slot = NULL;
+    priv->active_slot = NULL;
 
-    if (window->priv->bookmarks_id != 0)
+    if (priv->bookmarks_id != 0)
     {
         application = NAUTILUS_APPLICATION (gtk_window_get_application (GTK_WINDOW (window)));
         g_signal_handler_disconnect (nautilus_application_get_bookmarks (application),
-                                     window->priv->bookmarks_id);
-        window->priv->bookmarks_id = 0;
+                                     priv->bookmarks_id);
+        priv->bookmarks_id = 0;
     }
 
     GTK_WIDGET_CLASS (nautilus_window_parent_class)->destroy (object);
@@ -2323,36 +2372,38 @@ static void
 nautilus_window_finalize (GObject *object)
 {
     NautilusWindow *window;
+    NautilusWindowPrivate *priv;
 
     window = NAUTILUS_WINDOW (object);
+    priv = nautilus_window_get_instance_private(window);
 
-    if (window->priv->sidebar_width_handler_id != 0)
+    if (priv->sidebar_width_handler_id != 0)
     {
-        g_source_remove (window->priv->sidebar_width_handler_id);
-        window->priv->sidebar_width_handler_id = 0;
+        g_source_remove (priv->sidebar_width_handler_id);
+        priv->sidebar_width_handler_id = 0;
     }
 
-    if (window->priv->notification_delete_timeout_id != 0)
+    if (priv->notification_delete_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_delete_timeout_id);
-        window->priv->notification_delete_timeout_id = 0;
+        g_source_remove (priv->notification_delete_timeout_id);
+        priv->notification_delete_timeout_id = 0;
     }
 
-    if (window->priv->notification_operation_timeout_id != 0)
+    if (priv->notification_operation_timeout_id != 0)
     {
-        g_source_remove (window->priv->notification_operation_timeout_id);
-        window->priv->notification_operation_timeout_id = 0;
+        g_source_remove (priv->notification_operation_timeout_id);
+        priv->notification_operation_timeout_id = 0;
     }
 
-    g_clear_object (&window->priv->selected_file);
-    g_clear_object (&window->priv->selected_volume);
+    g_clear_object (&priv->selected_file);
+    g_clear_object (&priv->selected_volume);
 
     g_signal_handlers_disconnect_by_func (nautilus_file_undo_manager_get (),
                                           G_CALLBACK (nautilus_window_on_undo_changed),
                                           window);
 
     /* nautilus_window_close() should have run */
-    g_assert (window->priv->slots == NULL);
+    g_assert (priv->slots == NULL);
 
     G_OBJECT_CLASS (nautilus_window_parent_class)->finalize (object);
 }
@@ -2399,6 +2450,8 @@ nautilus_window_set_active_slot (NautilusWindow     *window,
 
     g_assert (NAUTILUS_IS_WINDOW (window));
 
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
+
     if (new_slot)
     {
         g_assert ((window == nautilus_window_slot_get_window (new_slot)));
@@ -2420,12 +2473,12 @@ nautilus_window_set_active_slot (NautilusWindow     *window,
         nautilus_window_slot_set_active (old_slot, FALSE);
     }
 
-    window->priv->active_slot = new_slot;
+    priv->active_slot = new_slot;
 
     /* make new slot active, if it exists */
     if (new_slot)
     {
-        nautilus_toolbar_set_active_slot (NAUTILUS_TOOLBAR (window->priv->toolbar), new_slot);
+        nautilus_toolbar_set_active_slot (NAUTILUS_TOOLBAR (priv->toolbar), new_slot);
 
         /* inform slot & view */
         nautilus_window_slot_set_active (new_slot, TRUE);
@@ -2450,6 +2503,7 @@ nautilus_window_key_press_event (GtkWidget   *widget,
     int i;
 
     window = NAUTILUS_WINDOW (widget);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
     focus_widget = gtk_window_get_focus (GTK_WINDOW (window));
     if (focus_widget != NULL && GTK_IS_EDITABLE (focus_widget))
@@ -2487,7 +2541,7 @@ nautilus_window_key_press_event (GtkWidget   *widget,
         return TRUE;
     }
 
-    if (nautilus_window_slot_handle_event (window->priv->active_slot, event))
+    if (nautilus_window_slot_handle_event (priv->active_slot, event))
     {
         return TRUE;
     }
@@ -2499,6 +2553,7 @@ void
 nautilus_window_sync_title (NautilusWindow     *window,
                             NautilusWindowSlot *slot)
 {
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
     if (NAUTILUS_WINDOW_CLASS (G_OBJECT_GET_CLASS (window))->sync_title != NULL)
     {
         NAUTILUS_WINDOW_CLASS (G_OBJECT_GET_CLASS (window))->sync_title (window, slot);
@@ -2511,7 +2566,7 @@ nautilus_window_sync_title (NautilusWindow     *window,
         gtk_window_set_title (GTK_WINDOW (window), nautilus_window_slot_get_title (slot));
     }
 
-    nautilus_notebook_sync_tab_label (NAUTILUS_NOTEBOOK (window->priv->notebook), slot);
+    nautilus_notebook_sync_tab_label (NAUTILUS_NOTEBOOK (priv->notebook), slot);
 }
 
 /**
@@ -2531,16 +2586,18 @@ NautilusWindowSlot *
 nautilus_window_get_active_slot (NautilusWindow *window)
 {
     g_assert (NAUTILUS_IS_WINDOW (window));
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
-    return window->priv->active_slot;
+    return priv->active_slot;
 }
 
 GList *
 nautilus_window_get_slots (NautilusWindow *window)
 {
     g_assert (NAUTILUS_IS_WINDOW (window));
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
-    return window->priv->slots;
+    return priv->slots;
 }
 
 static gboolean
@@ -2641,20 +2698,19 @@ static void
 nautilus_window_init (NautilusWindow *window)
 {
     GtkWindowGroup *window_group;
-
-    window->priv = nautilus_window_get_instance_private (window);
+    NautilusWindowPrivate *priv = nautilus_window_get_instance_private(window);
 
     g_type_ensure (NAUTILUS_TYPE_TOOLBAR);
     g_type_ensure (NAUTILUS_TYPE_NOTEBOOK);
     gtk_widget_init_template (GTK_WIDGET (window));
 
-    g_signal_connect_object (window->priv->notification_delete_close, "clicked",
+    g_signal_connect_object (priv->notification_delete_close, "clicked",
                              G_CALLBACK (nautilus_window_on_notification_delete_close_clicked), window, 0);
-    g_signal_connect_object (window->priv->notification_delete_undo, "clicked",
+    g_signal_connect_object (priv->notification_delete_undo, "clicked",
                              G_CALLBACK (nautilus_window_on_notification_delete_undo_clicked), window, 0);
 
-    window->priv->slots = NULL;
-    window->priv->active_slot = NULL;
+    priv->slots = NULL;
+    priv->active_slot = NULL;
 
     gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (window)),
                                  "nautilus-window");
diff --git a/src/nautilus-window.h b/src/nautilus-window.h
index b6095f5..c699437 100644
--- a/src/nautilus-window.h
+++ b/src/nautilus-window.h
@@ -32,9 +32,10 @@
 #include "nautilus-bookmark.h"
 #include "nautilus-search-directory.h"
 
-typedef struct NautilusWindow NautilusWindow;
-typedef struct NautilusWindowClass NautilusWindowClass;
-typedef struct NautilusWindowDetails NautilusWindowDetails;
+G_BEGIN_DECLS
+
+#define NAUTILUS_TYPE_WINDOW nautilus_window_get_type()
+G_DECLARE_DERIVABLE_TYPE(NautilusWindow, nautilus_window, NAUTILUS, WINDOW, GtkApplicationWindow);
 
 typedef enum {
         NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND = 1 << 0,
@@ -44,25 +45,29 @@ typedef enum {
         NAUTILUS_WINDOW_OPEN_FLAG_DONT_MAKE_ACTIVE = 1 << 4
 } NautilusWindowOpenFlags;
 
+#include "nautilus-files-view.h"
+#include "nautilus-window-slot.h"
+
+struct _NautilusWindowClass {
+        GtkApplicationWindowClass parent_spot;
+
+	/* Function pointers for overriding, without corresponding signals */
+        void   (* sync_title) (NautilusWindow *window,
+			       NautilusWindowSlot *slot);
+        void   (* close) (NautilusWindow *window);
+        /* Use this in case your window has a special slot. Also is expected that
+         * the slot is initialized with nautilus_window_initialize_slot.
+         */
+        NautilusWindowSlot * (* create_slot) (NautilusWindow *window,
+                                              GFile          *location);
+};
+
+
 typedef gboolean (* NautilusWindowGoToCallback) (NautilusWindow *window,
                                                  GFile *location,
                                                  GError *error,
                                                  gpointer user_data);
 
-#include "nautilus-files-view.h"
-#include "nautilus-window-slot.h"
-
-#define NAUTILUS_TYPE_WINDOW nautilus_window_get_type()
-#define NAUTILUS_WINDOW(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_WINDOW, NautilusWindow))
-#define NAUTILUS_WINDOW_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_WINDOW, NautilusWindowClass))
-#define NAUTILUS_IS_WINDOW(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_WINDOW))
-#define NAUTILUS_IS_WINDOW_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_WINDOW))
-#define NAUTILUS_WINDOW_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), NAUTILUS_TYPE_WINDOW, NautilusWindowClass))
 
 #define NAUTILUS_WINDOW_SIDEBAR_PLACES "places"
 #define NAUTILUS_WINDOW_SIDEBAR_TREE "tree"
@@ -79,29 +84,6 @@ typedef gboolean (* NautilusWindowGoToCallback) (NautilusWindow *window,
 #define NAUTILUS_WINDOW_DEFAULT_HEIGHT		550
 
 
-struct NautilusWindowClass {
-        GtkApplicationWindowClass parent_spot;
-
-	/* Function pointers for overriding, without corresponding signals */
-        void   (* sync_title) (NautilusWindow *window,
-			       NautilusWindowSlot *slot);
-        void   (* close) (NautilusWindow *window);
-        /* Use this in case your window has a special slot. Also is expected that
-         * the slot is initialized with nautilus_window_initialize_slot.
-         */
-        NautilusWindowSlot * (* create_slot) (NautilusWindow *window,
-                                              GFile          *location);
-};
-
-typedef struct _NautilusWindowPrivate NautilusWindowPrivate;
-
-struct NautilusWindow {
-        GtkApplicationWindow parent_object;
-        
-        NautilusWindowPrivate *priv;
-};
-
-GType            nautilus_window_get_type             (void);
 NautilusWindow * nautilus_window_new                  (GdkScreen         *screen);
 void             nautilus_window_close                (NautilusWindow    *window);
 
@@ -111,7 +93,7 @@ void nautilus_window_open_location_full               (NautilusWindow          *
                                                        GList                   *selection,
                                                        NautilusWindowSlot      *target_slot);
 
-void             nautilus_window_new_tab              (NautilusWindow    *window);
+void                 nautilus_window_new_tab               (NautilusWindow    *window);
 NautilusWindowSlot * nautilus_window_get_active_slot       (NautilusWindow *window);
 void                 nautilus_window_set_active_slot       (NautilusWindow    *window,
                                                             NautilusWindowSlot *slot);
@@ -127,8 +109,9 @@ void     nautilus_window_back_or_forward      (NautilusWindow *window,
                                                gboolean        back,
                                                guint           distance,
                                                NautilusWindowOpenFlags flags);
+
 void nautilus_window_hide_view_menu (NautilusWindow *window);
-void nautilus_window_reset_menus (NautilusWindow *window);
+void nautilus_window_reset_menus    (NautilusWindow *window);
 
 GtkWidget *         nautilus_window_get_notebook (NautilusWindow *window);
 
@@ -140,23 +123,24 @@ GtkWidget *nautilus_window_get_toolbar (NautilusWindow *window);
 /* sync window GUI with current slot. Used when changing slots,
  * and when updating the slot state.
  */
-void nautilus_window_sync_allow_stop       (NautilusWindow *window,
-					    NautilusWindowSlot *slot);
-void nautilus_window_sync_title            (NautilusWindow *window,
-					    NautilusWindowSlot *slot);
+void nautilus_window_sync_allow_stop  (NautilusWindow *window,
+				       NautilusWindowSlot *slot);
+void nautilus_window_sync_title       (NautilusWindow *window,
+				       NautilusWindowSlot *slot);
 
 void nautilus_window_show_operation_notification (NautilusWindow *window,
                                                   gchar          *main_label,
                                                   GFile          *folder_to_open);
-void nautilus_window_start_dnd (NautilusWindow *window,
-                                GdkDragContext *context);
-void nautilus_window_end_dnd (NautilusWindow *window,
-                              GdkDragContext *context);
-
-void nautilus_window_search (NautilusWindow *window,
-                             const gchar    *text);
 
+void nautilus_window_start_dnd       (NautilusWindow *window,
+                                      GdkDragContext *context);
+void nautilus_window_end_dnd         (NautilusWindow *window,
+                                      GdkDragContext *context);
+void nautilus_window_search          (NautilusWindow *window,
+                                      const gchar    *text);
 void nautilus_window_initialize_slot (NautilusWindow          *window,
                                       NautilusWindowSlot      *slot,
                                       NautilusWindowOpenFlags  flags);
+
+G_END_DECLS
 #endif
