diff --git a/AccountsVC.mm b/AccountsVC.mm
index bcae14c..80a198b 100644
--- a/AccountsVC.mm
+++ b/AccountsVC.mm
@@ -161,11 +161,20 @@
     [self.ringTabItem setView:self.ringVC.view];
 }
 
+- (IBAction)moveUp:(id)sender {
+    AccountModel::instance()->moveUp();
+}
+
+- (IBAction)moveDown:(id)sender {
+    AccountModel::instance()->moveDown();
+}
+
 - (IBAction)removeAccount:(id)sender {
 
     if(treeController.selectedNodes.count > 0) {
         QModelIndex qIdx = [treeController toQIdx:[treeController selectedNodes][0]];
         AccountModel::instance()->remove(qIdx);
+        AccountModel::instance()->save();
     }
 }
 - (IBAction)addAccount:(id)sender {
@@ -175,6 +184,7 @@
                 AccountModel::instance()->protocolModel()->data(qIdx, Qt::DisplayRole).toString().toNSString(), nil];
 
     Account* newAcc =AccountModel::instance()->add([newAccName UTF8String], qIdx);
+    AccountModel::instance()->save();
 }
 
 - (IBAction)protocolSelectedChanged:(id)sender {
@@ -336,6 +346,7 @@
     if([[treeController selectedNodes] count] > 0) {
         QModelIndex qIdx = [treeController toQIdx:[treeController selectedNodes][0]];
         //Update details view
+        AccountModel::instance()->selectionModel()->setCurrentIndex(qIdx, QItemSelectionModel::ClearAndSelect);
         Account* acc = AccountModel::instance()->getAccountByModelIndex(qIdx);
 
             switch (acc->protocol()) {
@@ -359,6 +370,7 @@
         [self.accountDetailsView setHidden:NO];
     } else {
         [self.accountDetailsView setHidden:YES];
+        AccountModel::instance()->selectionModel()->clearCurrentIndex();
     }
 }
 
