diff --git a/dev/js/src/match.js b/dev/js/src/match.js
index 235aabb..3827af1 100644
--- a/dev/js/src/match.js
+++ b/dev/js/src/match.js
@@ -197,7 +197,7 @@
 
         // Temporary
         var ops = document.createElement('div');
-        ops.classList.add('action', 'bottom', 'hui');
+        ops.classList.add('action', 'bottom', 'button-group');
 
         var meta = document.createElement('span');
         ops.appendChild(meta);
diff --git a/dev/js/src/match/reference.js b/dev/js/src/match/reference.js
index 41d40af..20f0137 100644
--- a/dev/js/src/match/reference.js
+++ b/dev/js/src/match/reference.js
@@ -1,4 +1,6 @@
-/*
+define(['util'], function () {
+
+  /*
   author, editor title, subTitle textSigle
   in corpusAuthor (corpusEditor), corpusTitle, corpusSubTitle, corpusSigle
   in docAuthor    (docEditor),    docTitle,    docSubTitle,    docSigle
@@ -22,7 +24,6 @@
   biblEditionStatement
   fileEditionStatement
 */
-define(['util'], function () {
 
   // Localization values
   var loc   = KorAP.Locale;
diff --git a/dev/js/src/vc/operators.js b/dev/js/src/vc/operators.js
index 91f009f..41ab744 100644
--- a/dev/js/src/vc/operators.js
+++ b/dev/js/src/vc/operators.js
@@ -138,7 +138,7 @@
 	return this._element;
 
       this._element = document.createElement('div');
-      this._element.setAttribute('class', 'operators');
+      this._element.classList.add('operators', 'button-group');
 
       // Init elements
       this.update();
diff --git a/dev/scss/base.scss b/dev/scss/base.scss
index 99fe4c8..5404508 100644
--- a/dev/scss/base.scss
+++ b/dev/scss/base.scss
@@ -135,3 +135,35 @@
 button + button {
   right: 0;
 }
+
+
+.button-group {
+  > span {
+    cursor: pointer;
+    box-shadow: $choose-box-shadow;
+    font-size: 9pt;
+    line-height: 1.5em;
+    padding: 0 4px;
+    display: inline-block;
+    @include choose-item;
+    border-style: solid;
+    border-width: $border-size 0;
+    &:hover {
+	    @include choose-hover;
+    }
+    &:first-child {
+	    border: {
+	    left-width: $border-size;
+	    top-left-radius: $standard-border-radius;
+	    bottom-left-radius: $standard-border-radius;
+	  }
+    }
+    &:last-child {
+	    border: {
+	    right-width: $border-size;
+	    top-right-radius: $standard-border-radius;
+	    bottom-right-radius: $standard-border-radius;
+	  }
+    }
+  }
+}
\ No newline at end of file
diff --git a/dev/scss/header/vc.scss b/dev/scss/header/vc.scss
index 2afea29..e5e7723 100644
--- a/dev/scss/header/vc.scss
+++ b/dev/scss/header/vc.scss
@@ -234,38 +234,6 @@
   }
 }
 
-.vc .operators,
-div.action.bottom {
-  > span {
-    cursor: pointer;
-    box-shadow: $choose-box-shadow;
-    font-size: 9pt;
-    line-height: 1.5em;
-    padding: 0 4px;
-    display: inline-block;
-    @include choose-item;
-    border-style: solid;
-    border-width: $border-size 0;
-    &:hover {
-	    @include choose-hover;
-    }
-    &:first-child {
-	    border: {
-	    left-width: $border-size;
-	    top-left-radius: $standard-border-radius;
-	    bottom-left-radius: $standard-border-radius;
-	  }
-    }
-    &:last-child {
-	    border: {
-	    right-width: $border-size;
-	    top-right-radius: $standard-border-radius;
-	    bottom-right-radius: $standard-border-radius;
-	  }
-    }
-  }
-}
-
 
 /**
  * The z-index cascade for groups.
