diff --git a/Changes b/Changes
index a3b03af..ea82bd7 100644
--- a/Changes
+++ b/Changes
@@ -15,6 +15,7 @@
 - Add API version to NamedVCLoader (#806)
 - Add corpus support at VirtualCorpusRewrite (#806)
 - Add apiVersion to rewrite (#806)
+- Removed unused attributes and shutdown-hook
 
 # version 0.79.1
 
diff --git a/src/main/java/de/ids_mannheim/korap/config/Attributes.java b/src/main/java/de/ids_mannheim/korap/config/Attributes.java
index dde3291..1794de5 100644
--- a/src/main/java/de/ids_mannheim/korap/config/Attributes.java
+++ b/src/main/java/de/ids_mannheim/korap/config/Attributes.java
@@ -120,22 +120,22 @@
     public static final String RIGHT_CONTEXT_ITEM_FOR_EXPORT = "rightContextItemForExport";
     public static final String RIGHT_CONTEXT_SIZE = "rightContextSize";
     public static final String RIGHT_CONTEXT_SIZE_FOR_EXPORT = "rightContextSizeForExport";
-    public static final String SELECTED_COLLECTION = "selectedCollection";
+//    public static final String SELECTED_COLLECTION = "selectedCollection";
     public static final String QUERY_LANGUAGE = "queryLanguage";
     public static final String PAGE_LENGTH = "pageLength";
     public static final String METADATA_QUERY_EXPERT_MODUS = "metadataQueryExpertModus";
-    @Deprecated
-    public static final String SEARCH_SETTINGS_TAB = "searchSettingsTab";
-    @Deprecated
-    public static final String SELECTED_BROWSER_PROPERTY = "selectedBrowserProperty";
-    @Deprecated
-    public static final String SELECTED_CONTEXT_ITEM = "selectedContextItem";
-    @Deprecated
-    public static final String SELECTED_GRAPH_TYPE = "selectedGraphType";
-    @Deprecated
-    public static final String SELECTED_SORT_TYPE = "selectedSortType";
-    @Deprecated
-    public static final String SELECTED_VIEW_FOR_SEARCH_RESULTS = "selectedViewForSearchResults";
+//    @Deprecated
+//    public static final String SEARCH_SETTINGS_TAB = "searchSettingsTab";
+//    @Deprecated
+//    public static final String SELECTED_BROWSER_PROPERTY = "selectedBrowserProperty";
+//    @Deprecated
+//    public static final String SELECTED_CONTEXT_ITEM = "selectedContextItem";
+//    @Deprecated
+//    public static final String SELECTED_GRAPH_TYPE = "selectedGraphType";
+//    @Deprecated
+//    public static final String SELECTED_SORT_TYPE = "selectedSortType";
+//    @Deprecated
+//    public static final String SELECTED_VIEW_FOR_SEARCH_RESULTS = "selectedViewForSearchResults";
     public static final String COLLECT_AUDITING_DATA = "collectData";
 
     /**
diff --git a/src/main/java/de/ids_mannheim/korap/web/utils/ShutdownHook.java b/src/main/java/de/ids_mannheim/korap/web/utils/ShutdownHook.java
deleted file mode 100644
index de34e38..0000000
--- a/src/main/java/de/ids_mannheim/korap/web/utils/ShutdownHook.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package de.ids_mannheim.korap.web.utils;
-
-/**
- * @author hanl
- * @date 18/02/2014
- */
-public class ShutdownHook extends Thread {
-
-    @Override
-    public void run () {
-        //        Properties config = ExtensionBeans.getInstance().getConfiguration()
-        //                .getMailProperties();
-
-        //                Email e = new SimpleEmail();
-        //                try {
-        //                    e.setHostName(config.getProperty("mail.host"));
-        //                    e.setSmtpPort(587);
-        //                    e.setSubject("KorAP Rest service shutdown Notification");
-        //                    e.setFrom(config.getProperty("mail.from"));
-        //                    e.addTo("hanl@ids-mannheim.de");
-        //                    e.setMsg("The KorAP - REST application shut down unexpectedly!!");
-        //                    e.send();
-        //                } catch (EmailException e1) {
-        //                    e1.printStackTrace();
-        //                }
-
-    }
-
-}
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/QueryReferenceControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/QueryReferenceControllerTest.java
index a9981f0..10d7072 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/QueryReferenceControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/QueryReferenceControllerTest.java
@@ -37,7 +37,6 @@
                         .createBasicAuthorizationHeaderValue(username, "pass"))
                 .get();
         String entity = response.readEntity(String.class);
-        // System.out.println(entity);
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
         JsonNode node = JsonUtils.readTree(entity);
         assertEquals(qName, node.at("/name").asText());
