diff --git a/.gitignore b/.gitignore
index 219d538..87ea481 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
 cache/data
 public
 kalamar.*.conf
+kalamar.conf.json
 script/hypnotoad.pid
 .sass-cache
 dev/css
diff --git a/Gruntfile.js b/Gruntfile.js
index af74d0e..830a0eb 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -14,26 +14,48 @@
  * TODO: Implement a LaTeX generator for a pdf of the dokumentation 
  */
 
-// Generate requireJS files for l10n
-var reqTasks = [];
-for (var i in {'en' : 0, 'de' : 1}) {
-  reqTasks.push({
-    options: {
-      // optimize: "uglify",
-      baseUrl: 'dev/js/src',
-      paths : {
-	      'lib': '../lib'
-      },
-      wrap:true,
-      // dir : 'public/js',
-      name: 'lib/almond',
-      include : ['app/' + i],
-      out: 'public/js/kalamar-<%= pkg.version %>-' + i + '.js'
-    }
-  })
-};
-
 module.exports = function(grunt) {
+
+  var config;
+
+  try {
+    config = grunt.file.readJSON('kalamar.conf.json');
+  }
+  catch(err) {
+    console.log("Error: " + err);
+    config = {};
+  };
+
+  if (config["include"] === undefined) {
+    config["include"] = [
+      'hint/foundries/base',
+      'hint/foundries/dereko'
+    ];
+  };
+
+  // Generate requireJS files for l10n
+  var reqTasks = [];
+  for (var i in {'en' : 0, 'de' : 1}) {
+
+    var includeFiles = config["include"].slice();
+    includeFiles.push('app/' + i);
+
+    reqTasks.push({
+      options: {
+        // optimize: "uglify",
+        baseUrl: 'dev/js/src',
+        paths : {
+	        'lib': '../lib'
+        },
+        wrap:true,
+        // dir : 'public/js',
+        name: 'lib/almond',
+        include : includeFiles,
+        out: 'public/js/kalamar-<%= pkg.version %>-' + i + '.js'
+      }
+    })
+  };
+
   grunt.initConfig({
     pkg: grunt.file.readJSON('package.json'),
     requirejs: reqTasks,
diff --git a/dev/js/spec/hintSpec.js b/dev/js/spec/hintSpec.js
index 5df65fd..1ff9343 100644
--- a/dev/js/spec/hintSpec.js
+++ b/dev/js/spec/hintSpec.js
@@ -143,7 +143,7 @@
 
 
   describe('KorAP.Hint', function () {
-    KorAP.hintArray = {
+    KorAP.annotationHelper = {
       "-" : [
   ["Base Annotation", "base/s=", "Structure"],
   ["CoreNLP", "corenlp/", "Constituency, Named Entities, Part-of-Speech"]
diff --git a/dev/js/src/hint.js b/dev/js/src/hint.js
index 238b737..2ebc395 100644
--- a/dev/js/src/hint.js
+++ b/dev/js/src/hint.js
@@ -42,7 +42,7 @@
     ")?" +
     ")?" +
     ")$";
-  KorAP.hintArray = KorAP.hintArray || {};
+  KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
 
   /**
    * Return keycode based on event
@@ -175,12 +175,12 @@
       if (this._menu[action] === undefined) {
 
 	      // No matching hint menu
-	      if (KorAP.hintArray[action] === undefined)
+	      if (KorAP.annotationHelper[action] === undefined)
 	        return;
 
 	      // Create matching hint menu
 	      this._menu[action] = menuClass.create(
-	        this, action, KorAP.hintArray[action]
+	        this, action, KorAP.annotationHelper[action]
 	      );
       };
 
diff --git a/dev/js/src/hint/array.js b/dev/js/src/hint/array.js
deleted file mode 100644
index 16bd43d..0000000
--- a/dev/js/src/hint/array.js
+++ /dev/null
@@ -1,554 +0,0 @@
-/*
-var menuContent = [
-  ['cnx/c', 'cnx', 'c'],
-  ['mate/c', 'mate', 'c'],
-  ['base/c', 'base', 'c'],
-  ['xip/c', 'xip', 'c'],
-  ['tt/c', 'tt', 'c']
-];
-*/
-
-var namedEntities = [
-  ["I-LOC",  "I-LOC ",  "Location"],
-  ["I-MISC", "I-MISC ", "Miscellaneous"],
-  ["I-ORG",  "I-ORG ",  "Organization"],
-  ["I-PER",  "I-PER ",  "Person"]
-];
-
-// http://www.ids-mannheim.de/cosmas2/projekt/referenz/stts/morph.html
-// http://nachhalt.sfb632.uni-potsdam.de/owl-docu/stts.html
-var sttsArray = [
-  // "$.", "$(", "$,"
-  ["ADJA","ADJA ", "Attributive Adjective"],
-  ["ADJD","ADJD ", "Predicative Adjective"],
-  ["ADV","ADV ", "Adverb"],
-  ["APPO","APPO ", "Postposition"],
-  ["APPR","APPR ", "Preposition"],
-  ["APPRART","APPRART ", "Preposition with Determiner"],
-  ["APZR","APZR ","Right Circumposition"],
-  ["ART","ART ", "Determiner"],
-  ["CARD","CARD ", "Cardinal Number"],
-  ["FM","FM ", "Foreign Material"],
-  ["ITJ","ITJ ", "Interjection"],
-  ["KOKOM","KOKOM ", "Comparison Particle"],
-  ["KON","KON ", "Coordinating Conjuncion"],
-  ["KOUI","KOUI ", "Subordinating Conjunction with 'zu'"],
-  ["KOUS","KOUS ", "Subordinating Conjunction with Sentence"],
-  ["NE","NE ", "Named Entity"],
-  ["NN","NN ", "Normal Nomina"],
-  ["PAV", "PAV ", "Pronominal Adverb"],
-  ["PDAT","PDAT ","Attributive Demonstrative Pronoun"],
-  ["PDS","PDS ", "Substitutive Demonstrative Pronoun"],
-  ["PIAT","PIAT ", "Attributive Indefinite Pronoun without Determiner"],
-  ["PIDAT","PIDAT ", "Attributive Indefinite Pronoun with Determiner"],
-  ["PIS","PIS ", "Substitutive Indefinite Pronoun"],
-  ["PPER","PPER ", "Personal Pronoun"],
-  ["PPOSAT","PPOSAT ", "Attributive Possessive Pronoun"],
-  ["PPOSS","PPOSS ", "Substitutive Possessive Pronoun"],
-  ["PRELAT","PRELAT ", "Attributive Relative Pronoun"],
-  ["PRELS","PRELS ", "Substitutive Relative Pronoun"],
-  ["PRF","PRF ", "Reflexive Pronoun"],
-  ["PROAV","PROAV ", "Pronominal Adverb"],
-  ["PTKA","PTKA ","Particle with Adjective"],
-  ["PTKANT","PTKANT ", "Answering Particle"],
-  ["PTKNEG","PTKNEG ", "Negation Particle"],
-  ["PTKVZ","PTKVZ ", "Separated Verbal Particle"],
-  ["PTKZU","PTKZU ", "'zu' Particle"],
-  ["PWAT","PWAT ", "Attributive Interrogative Pronoun"],
-  ["PWAV","PWAV ", "Adverbial Interrogative Pronoun"],
-  ["PWS","PWS ", "Substitutive Interrogative Pronoun"],
-  ["TRUNC","TRUNC ","Truncated"],
-  ["VAFIN","VAFIN ", "Auxiliary Finite Verb"],
-  ["VAIMP","VAIMP ", "Auxiliary Finite Imperative Verb"],
-  ["VAINF","VAINF ", "Auxiliary Infinite Verb"],
-  ["VAPP","VAPP ", "Auxiliary Perfect Participle"],
-  ["VMFIN","VMFIN ", "Modal Finite Verb"],
-  ["VMINF","VMINF ", "Modal Infinite Verb"],
-  ["VMPP","VMPP ", "Modal Perfect Participle"],
-  ["VVFIN","VVFIN ","Finite Verb"],
-  ["VVIMP","VVIMP ", "Finite Imperative Verb"],
-  ["VVINF","VVINF ", "Infinite Verb"],
-  ["VVIZU","VVIZU ", "Infinite Verb with 'zu'"],
-  ["VVPP","VVPP ", "Perfect Participle"],
-  ["XY", "XY ", "Non-Word"]
-];
-
-
-// http://www.coli.uni-saarland.de/projects/sfb378/negra-corpus/negra-corpus.html
-// http://www.coli.uni-saarland.de/projects/sfb378/negra-corpus/knoten.html
-var negraNodes = [
-  ["AA", "AA", "superlative phrase with 'am'"],
-  ["AP","AP", "adjektive phrase"],
-  ["AVP","AVP", "adverbial phrase"],
-  ["CAP","CAP", "coordinated adjektive phrase"],
-  ["CAVP","CAVP", "coordinated adverbial phrase"],
-  ["CAC","CAC", "coordinated adposition"],
-  ["CCP","CCP", "coordinated complementiser"],
-  ["CH","CH", "chunk"],
-  ["CNP","CNP", "coordinated noun phrase"],
-  ["CO","CO", "coordination"],
-  ["CPP","CPP", "coordinated adpositional phrase"],
-  ["CS","CS", "coordinated sentence"],
-  ["CVP","CVP", "coordinated verb phrase (non-finite)"],
-  ["CVZ","CVZ", "coordinated zu-marked infinitive"],
-  ["DL","DL", "discourse level constituent"],
-  ["ISU","ISU", "idiosyncratis unit"],
-  ["MPN","MPN", "multi-word proper noun"],
-  ["MTA","MTA", "multi-token adjective"],
-  ["NM","NM", "multi-token number"],
-  ["NP","NP", "noun phrase"],
-  ["PP","PP", "adpositional phrase"],
-  ["QL","QL", "quasi-languag"],
-  ["ROOT","ROOT", "root node"],
-  ["S","S", "sentence"],
-  ["VP","VP", "verb phrase (non-finite)"],
-  ["VZ","VZ", "zu-marked infinitive"]
-];
-
-// http://www.coli.uni-saarland.de/projects/sfb378/negra-corpus/kanten.html
-var negraEdges = [
-  ["AC","AC","adpositional case marker"],
-  ["ADC","ADC","adjective component"],
-  ["AMS","AMS","measure argument of adj"],
-  ["APP","APP","apposition"],
-  ["AVC","AVC","adverbial phrase component"],
-  ["CC","CC","comparative complement"],
-  ["CD","CD","coordinating conjunction"],
-  ["CJ","CJ","conjunct"],
-  ["CM","CM","comparative concjunction"],
-  ["CP","CP","complementizer"],
-  ["DA","DA","dative"],
-  ["DH","DH","discourse-level head"],
-  ["DM","DM","discourse marker"],
-  ["GL","GL","prenominal genitive"],
-  ["GR","GR","postnominal genitive"],
-  ["HD","HD","head"],
-  ["JU","JU","junctor"],
-  ["MC","MC","comitative"],
-  ["MI","MI","instrumental"],
-  ["ML","ML","locative"],
-  ["MNR","MNR","postnominal modifier"],
-  ["MO","MO","modifier"],
-  ["MR","MR","rhetorical modifier"],
-  ["MW","MW","way (directional modifier)"],
-  ["NG","NG","negation"],
-  ["NK","NK","noun kernel modifier"],
-  ["NMC","NMC","numerical component"], 
-  ["OA","OA","accusative object"],
-  ["OA2","OA2","second accusative object"], 
-  ["OC","OC","clausal object"],
-  ["OG","OG","genitive object"], 
-  ["PD","PD","predicate"],
-  ["PG","PG","pseudo-genitive"],
-  ["PH","PH","placeholder"],
-  ["PM","PM","morphological particle"],
-  ["PNC","PNC","proper noun component"], 
-  ["RC","RC","relative clause"],
-  ["RE","RE","repeated element"],
-  ["RS","RS","reported speech"],
-  ["SB","SB","subject"],
-  ["SBP","SBP","passivised subject (PP)"], 
-  ["SP","SP","subject or predicate"],
-  ["SVP","SVP","separable verb prefix"],
-  ["UC","UC","(idiosyncratic) unit component"], 
-  ["VO","VO","vocative"]
-];
-
-var mateSttsArray = sttsArray.slice(0);
-mateSttsArray.push(
-  ["<root-POS>","<root-POS>","Root Part of Speech"]
-);
-
-var sgbrSttsArray = sttsArray.slice(0);
-
-// Push specific information for Schreibgebrauch
-sgbrSttsArray.push(
-  ["NNE", "NNE", "Normal Nomina with Named Entity"],
-  ["ADVART","ADVART",   "Adverb with Article"],
-  ["EMOASC","EMOASC",   "ASCII emoticon"],
-  ["EMOIMG","EMOIMG",   "Graphic emoticon"],
-  ["ERRTOK","ERRTOK",   "Tokenisation Error"],
-  ["HST",     "HST",      "Hashtag"],
-  ["KOUSPPER","KOUSPPER", "Subordinating Conjunction (with Sentence) with Personal Pronoun"],
-  ["ONO",     "ONO",      "Onomatopoeia"],
-  ["PPERPPER","PPERPPER", "Personal Pronoun with Personal Pronoun"],
-  ["URL",     "URL",      "Uniform Resource Locator"],
-  ["VAPPER",  "VAPPER",   "Finite Auxiliary Verb with Personal Pronoun"],
-  ["VMPPER",  "VMPPER",   "Fintite Modal Verb with Personal Pronoun"],
-  ["VVPPER",  "VVPPER",   "Finite Full Verb with Personal Pronoun"],
-  ["AW", "AW", "Interaction Word"],
-  ["ADR", "ADR", "Addressing Term"],
-  ["AWIND", "AWIND", "Punctuation Indicating Addressing Term"],
-  ["ERRAW","ERRAW", "Part of Erroneously Separated Compound"]
-  /*
-    As KorAP currently doesn't support these tags, they could also be ommited
-    ["_KOMMA", "_KOMMA", "Comma"],
-    ["_SONST", "_SONST", "Intrasentential Punctuation Mark"],
-    ["_ENDE", "_ENDE", "Punctuation Mark at the end of the Sentence"]
-  */
-);
-
-// Sort by tag
-sgbrSttsArray.sort(function (a,b) { return a[0].localeCompare(b[0]) });
-
-define(function () {
-  var obj = {
-    "-" : [
-      ["Base Annotation", "base/s=", "Structure"],
-//      ["Connexor", "cnx/", "Constituency, Lemma, Morphology, Part-of-Speech, Syntax"],
-      ["CoreNLP", "corenlp/", "Constituency, Named Entities, Part-of-Speech"],
-      ["DeReKo", "dereko/s=", "Structure"],
-      ["DRuKoLa", "drukola/", "Lemma, Morphology, Part-of-Speech"],
-//      ["Mate", "mate/", "Lemma, Morphology, Part-of-Speech"],
-      ["Malt", "malt/", "Dependency"],
-      ["OpenNLP", "opennlp/", "Part-of-Speech"],
-//      ["Schreibgebrauch", "sgbr/", "Lemma, Lemma Variants, Part-of-Speech"],
-      ["TreeTagger", "tt/", "Lemma, Part-of-Speech"],
-//      ["Xerox Parser", "xip/", "Constituency, Lemma, Part-of-Speech"]
-      ["MarMoT", "marmot/", "Morphology, Part-of-Speech"],
-    ],
-    "base/s=" : [
-      ["s", "s", "Sentence"],
-      ["p", "p", "Paragraph"],
-      ["t", "t", "Text"]
-    ],
-    "corenlp/" : [
-      ["Constituency", "c="],
-      ["Named Entity", "ne=" , "Combined"],
-      ["Named Entity", "ne_dewac_175m_600=" , "ne_dewac_175m_600"],
-      ["Named Entity", "ne_hgc_175m_600=",    "ne_hgc_175m_600"],
-      ["Part-of-Speech", "p="]
-    ],
-    "corenlp/ne=" : namedEntities,
-    "corenlp/ne_dewac_175m_600=" : namedEntities,
-    "corenlp/ne_hgc_175m_600=" : namedEntities,
-    "corenlp/p=" : sttsArray,
-    "corenlp/c=" : negraNodes,
-    "cnx/" : [
-      ["Constituency", "c="],
-      ["Lemma", "l="],
-      ["Morphology", "m="],
-      ["Part-of-Speech", "p="],
-      ["Syntax", "syn="]
-    ],
-    "cnx/c=" : [
-      ["np", "np ", "Nominal Phrase"]
-    ],
-    // http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/morph.html
-    "cnx/m=" : [
-      ["Abbr","Abbr ", "Nouns: Abbreviation"],
-      ["CMP","CMP ", "Adjective: Comparative"],
-      ["IMP", "IMP ", "Mood: Imperative"],
-      ["IND", "IND ", "Mood: Indicative"],
-      ["INF", "INF ", "Infinitive"],
-      ["ORD","ORD ", "Numeral: Ordinal"],
-      ["PAST", "PAST ", "Tense: past"],
-      ["PCP", "PCP ", "Participle"],
-      ["PERF", "PERF ", "Perfective Participle"],
-      ["PL","PL ", "Nouns: Plural"],
-      ["PRES", "PRES ", "Tense: present"],
-      ["PROG", "PROG ", "Progressive Participle"],
-      ["Prop","Prop ", "Nouns: Proper Noun"],
-      ["SUB", "SUB ", "Mood: Subjunctive"],
-      ["SUP","SUP ", "Adjective: Superlative"]
-    ],
-    // http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/morph.html
-    "cnx/p=" : [
-      ["A", "A ", "Adjective"],
-      ["ADV", "ADV ", "Adverb"],
-      ["CC", "CC ", "Coordination Marker"],
-      ["CS", "CS ", "Clause Marker"],
-      ["DET", "DET ", "Determiner"],
-      ["INTERJ", "INTERJ ", "Interjection"],
-      ["N", "N ", "Noun"],
-      ["NUM", "NUM ", "Numeral"],
-      ["PREP", "PREP ", "Preposition"],
-      ["PRON", "PRON ", "Pro-Nominal"],
-      ["V", "V ", "Verb"]
-    ],
-    // http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/syntax.html
-    "cnx/syn=" : [
-      ["@ADVL", "@ADVL ", "Adverbial Head"],
-      ["@AUX", "@AUX ", "Auxiliary Verb"],
-      ["@CC", "@CC ", "Coordination"]
-      ["@MAIN", "@MAIN ", "Main Verb"],
-      ["@NH", "@NH ", "Nominal Head"],
-      ["@POSTMOD", "@POSTMOD ", "Postmodifier"],
-      ["@PREMARK", "@PREMARK ", "Preposed Marker"],
-      ["@PREMOD", "@POSTMOD ", "Premodifier"]
-    ],
-    "drukola/" : [
-      ["Lemma", "l="],
-      ["Morphology", "m="],
-      ["Part-of-Speech", "p="]      
-    ],
-    "drukola/m=" : [
-      ["CTAG", "ctag:"]
-    ],
-    "drukola/m=ctag:" : [
-      ["A","A","Adjective"],
-      ["Y","Y","Abbreviation"],
-      ["AN","AN","Adjective, Indefinite"],
-      ["APRY","APRY","Adjective, Plural, Direct, Definite"],
-      ["APN","APN","Adjective, Plural, Indefinite"],
-      ["APOY","APOY","Adjective, Plural, Oblique, Definite"],
-      ["APON","APON","Adjective, Plural, Oblique, Indefinite"],
-      ["ASRY","ASRY","Adjective, Singular, Direct, Definite"],
-      ["ASN","ASN","Adjective, Singular, Indefinite"],
-      ["ASOY","ASOY","Adjective, Singular, Oblique, Definite"],
-      ["ASON","ASON","Adjective, Singular, Oblique, Indefinite"],
-      ["ASVY","ASVY","Adjective, Singular, Vocative, Definite"],
-      ["ASVN","ASVN","Adjective, Singular, Vocative, Indefinite"],
-      ["R","R","Adverb"],
-      ["RC","RC","Adverb, Portmanteau"],
-      ["TS","TS","Article, Definite or Possessive, Singular"],
-      ["TP","TP","Article, Indefinite or Possessive, Plural"],
-      ["TPR","TPR","Article, non-Possessive, Plural, Direct"],
-      ["TPO","TPO","Article, non-Possessive, Plural, Oblique"],
-      ["TSR","TSR","Article, non-Possessive, Singular, Direct"],
-      ["TSO","TSO","Article, non-Possessive, Singular, Oblique"],
-      ["NPRY","NPRY","Common Noun, Plural, Direct, Definite"],
-      ["NPN","NPN","Common Noun, Plural, Indefinite"],
-      ["NPOY","NPOY","Common Noun, Plural, Oblique, Definite"],
-      ["NPVY","NPVY","Common Noun, Plural, Vocative, Definite"],
-      ["NN","NN","Common Noun, singular"],
-      ["NSY","NSY","Common Noun, Singular, Definite"],
-      ["NSRY","NSRY","Common Noun, Singular, Direct, Definite"],
-      ["NSRN","NSRN","Common Noun, Singular, Direct, Indefinite"],
-      ["NSN","NSN","Common Noun, Singular, Indefinite"],
-      ["NSOY","NSOY","Common Noun, Singular, Oblique, Definite"],
-      ["NSON","NSON","Common Noun, Singular, Oblique, Indefinite"],
-      ["NSVY","NSVY","Common Noun, Singular, Vocative, Definite"],
-      ["NSVN","NSVN","Common Noun, Singular, Vocative, Indefinite"],
-      ["CR","CR","Conjunctio, portmanteau"],
-      ["C","C","Conjunction"],
-      ["QF","QF","Future Particle"],
-      ["QN","QN","Infinitival Particle"],
-      ["I","I","Interjection"],
-      ["QZ","QZ","Negative Particle"],
-      ["M","M","Numeral"],
-      ["PP","PP","Personal Pronoun"],
-      ["PPP","PPP","Personal Pronoun, Plural"],
-      ["PPPA","PPPA","Personal Pronoun, Plural, Acc."],
-      ["PPPD","PPPD","Personal Pronoun, Plural, Dative"],
-      ["PPPR","PPPR","Personal Pronoun, Plural, Direct"],
-      ["PPPO","PPPO","Personal Pronoun, Plural, Oblique"],
-      ["PPS","PPS","Personal Pronoun, Singular"],
-      ["PPSA","PPSA","Personal Pronoun, Singular, Accusative"],
-      ["PPSD","PPSD","Personal Pronoun, Singular, Dative"],
-      ["PPSR","PPSR","Personal Pronoun, Singular, Direct"],
-      ["PPSN","PPSN","Personal Pronoun, Singular, Nominative"],
-      ["PPSO","PPSO","Personal Pronoun, Singular, Oblique"],
-      ["S","S","Preposition"],
-      ["DMPR","DMPR","Pronoun or Determiner, Demonstrative, Plural, Direct"],
-      ["DMPO","DMPO","Pronoun or Determiner, Demonstrative, Plural, Oblique"],
-      ["DMSR","DMSR","Pronoun or Determiner, Demonstrative, Singular, Direct"],
-      ["DMSO","DMSO","Pronoun or Determiner, Demonstrative, Singular, Oblique"],
-      ["PS","PS","Pronoun or Determiner, Poss or Emph"],
-      ["PSS","PSS","Pronoun or Determiner, Poss or Emph, Singular"],
-      ["RELR","RELR","Pronoun or Determiner, Relative, Direct"],
-      ["RELO","RELO","Pronoun or Determiner, Relative, Oblique"],
-      ["NP","NP","Proper Noun"],
-      ["PI","PI","Quantifier Pronoun or Determiner"],
-      ["PXA","PXA","Reflexive Pronoun, Accusative"],
-      ["PXD","PXD","Reflexive Pronoun, Dative"],
-      ["X","X","Residual"],
-      ["QS","QS","Subjunctive Particle"],
-      ["VA","VA","Verb, Auxiliary"],
-      ["VA1","VA1","Verb, Auxiliary, 1st person"],
-      ["VA2P","VA2P","Verb, Auxiliary, 2nd person, Plural"],
-      ["VA2S","VA2S","Verb, Auxiliary, 2nd person, Singular"],
-      ["VA3","VA3","Verb, Auxiliary, 3rd person"],
-      ["VA3P","VA3P","Verb, Auxiliary, 3rd person, Plural"],
-      ["VA3S","VA3S","Verb, Auxiliary, 3rd person, Singular"],
-      ["VA1P","VA1P","Verb, Auxiliary,1st person, Plural"],
-      ["VA1S","VA1S","Verb, Auxiliary,1st person, Singular"],
-      ["VG","VG","Verb, Gerund"],
-      ["VN","VN","Verb, Infinitive"],
-      ["V1","V1","Verb, Main, 1st person"],
-      ["V2","V2","Verb, Main, 2nd person"],
-      ["V3","V3","Verb, Main, 3rd person"],
-      ["VPPF","VPPF","Verb, Participle, Plural, Feminine"],
-      ["VPPM","VPPM","Verb, Participle, Plural, Masculine"],
-      ["VPSF","VPSF","Verb, Participle, Singular, Feminine"],
-      ["VPSM","VPSM","Verb, Participle, Singular, Masculine"],
-    ],
-    "opennlp/" : [
-      ["Part-of-Speech", "p="]
-    ],
-    "opennlp/p=" : sttsArray,
-    "sgbr/" : [
-      ["Lemma", "l="],
-      ["Lemma Variants", "lv="],
-      ["Part-of-Speech", "p="]
-    ],
-    "sgbr/p=" : sgbrSttsArray,
-    "xip/" : [
-      ["Constituency", "c="],
-      // Inactive: ["Dependency", "d="],
-      ["Lemma", "l="],
-      ["Part-of-Speech", "p="],
-    ],
-    // "xip/c=" : [],
-    // Inactive: "xip/d=" : [],
-    // "xip/p=" : [],
-    "tt/" : [
-      ["Lemma", "l="],
-      ["Part-of-Speech", "p="]
-    ],
-    "tt/p=" : sttsArray,
-    "marmot/" : [
-      ["Morphology", "m="],
-      ["Part-of-Speech", "p="]
-    ],
-    "marmot/p=" : sttsArray,
-    "malt/" : [
-      ["Dependency", "d="]
-    ],
-    "mate/" : [
-      // Inactive: "d" : ["d=", "Dependency"],
-      ["Lemma", "l="],
-      ["Morphology", "m="],
-      ["Part-of-Speech", "p="]
-    ],
-    // Inactive: mate/d=
-    "mate/p=" : mateSttsArray,
-    "mate/m=" : [
-      ["Case", "case:"],
-      ["Degree", "degree:"],
-      ["Gender", "gender:"],
-      ["Mood", "mood:"],
-      ["Number", "number:"],
-      ["Person", "person:"],
-      ["Tense","tense:"],
-      ["No type", "<no-type> "]
-    ],
-    "marmot/m=" : [
-      ["Case", "case:"],
-      ["Degree", "degree:"],
-      ["Gender", "gender:"],
-      ["Mood", "mood:"],
-      ["Number", "number:"],
-      ["Person", "person:"],
-      ["Tense","tense:"],
-      ["No type", "<no-type> "]
-    ],
-    "mate/m=case:" : [
-      ["acc", "acc ", "Accusative"],
-      ["dat","dat ", "Dative"],
-      ["gen", "gen ","Genitive"],
-      ["nom","nom ", "Nominative"],
-      ["*","* ", "Undefined"]
-    ],
-    "marmot/m=case:" : [
-      ["acc", "acc ", "Accusative"],
-      ["dat","dat ", "Dative"],
-      ["gen", "gen ","Genitive"],
-      ["nom","nom ", "Nominative"],
-      ["*","* ", "Undefined"]
-    ],
-    "mate/m=degree:" : [
-      ["comp","comp ", "Comparative"],
-      ["pos","pos ", "Positive"],
-      ["sup","sup ", "Superative"]
-    ],
-    "marmot/m=degree:" : [
-      ["comp","comp ", "Comparative"],
-      ["pos","pos ", "Positive"],
-      ["sup","sup ", "Superative"]
-    ],
-    "mate/m=gender:" : [
-      ["fem", "fem ", "Feminium"],
-      ["masc", "masc ", "Masculinum"],
-      ["neut","neut ", "Neuter"],
-      ["*","* ","Undefined"]
-    ],
-    "marmot/m=gender:" : [
-      ["fem", "fem ", "Feminium"],
-      ["masc", "masc ", "Masculinum"],
-      ["neut","neut ", "Neuter"],
-      ["*","* ","Undefined"]
-    ],
-    "mate/m=mood:" : [
-      ["imp","imp ", "Imperative"],
-      ["ind","ind ", "Indicative"],
-      ["subj","subj ", "Subjunctive"]
-    ],
-    "marmot/m=mood:" : [
-      ["imp","imp ", "Imperative"],
-      ["ind","ind ", "Indicative"],
-      ["subj","subj ", "Subjunctive"]
-    ], 
-    "mate/m=number:" : [
-      ["pl","pl ","Plural"],
-      ["sg","sg ","Singular"],
-      ["*","* ","Undefined"]
-    ],
-    "marmot/m=number" : [
-      ["pl","pl ","Plural"],
-      ["sg","sg ","Singular"],
-      ["*","* ","Undefined"]
-    ],
-    "mate/m=person:" : [
-      ["1","1 ", "First Person"],
-      ["2","2 ", "Second Person"],
-      ["3","3 ", "Third Person"]
-    ],
-    "marmot/m=person:" : [
-      ["1","1 ", "First Person"],
-      ["2","2 ", "Second Person"],
-      ["3","3 ", "Third Person"]
-    ],
-    "mate/m=tense:" : [
-      ["past","past ", "Past"],
-      ["pres","pres ", "Present"]
-    ],
-    "marmot/m=tense:" : [
-      ["past","past ", "Past"],
-      ["pres","pres ", "Present"]
-    ],
-    "malt/d=" : [
-      ["-PUNCT-", "-PUNCT- "],
-      ["-UNKNOWN-","-UNKNOWN- "],
-      ["ADV","ADV "],
-      ["APP","APP "],
-      ["ATTR","ATTR "],
-      ["AUX","AUX "],
-      ["AVZ","AVZ "],
-      ["CJ","CJ "],
-      ["DET","DET "],
-      ["EXPL","EXPL "],
-      ["GMOD","GMOD "],
-      ["GRAD","GRAD "],
-      ["KOM","KOM "],
-      ["KON","KON "],
-      ["KONJ","KONJ "],
-      ["NEB","NEB "],
-      ["OBJA","OBJA "],
-      ["OBJC","OBJC "],
-      ["OBJD","OBJD "],
-      ["OBJG","OBJG "],
-      ["OBJI","OBJI "],
-      ["OBJP","OBJP "],
-      ["PAR","PAR "],
-      ["PART","PART "],
-      ["PN","PN "],
-      ["PP","PP "],
-      ["PRED","PRED "],
-      ["REL","REL "],
-      ["ROOT","ROOT "],
-      ["S","S "],
-      ["SUBJ","SUBJ "],
-      ["SUBJC","SUBJC "],
-      ["ZEIT","ZEIT "],
-      ["gmod-app","gmod-app "],
-      ["koord","koord "]
-    ]
-  };
-
-  for (var i in negraNodes) {
-    obj["corenlp/c=" + negraNodes[i][0] + '-'] = negraEdges;
-  };
-
-  return obj;
-});
diff --git a/dev/js/src/hint/foundries/base.js b/dev/js/src/hint/foundries/base.js
new file mode 100644
index 0000000..0bb26fc
--- /dev/null
+++ b/dev/js/src/hint/foundries/base.js
@@ -0,0 +1,11 @@
+var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+ah["-"].push(
+  ["Base Annotation", "base/s=", "Structure"]
+);
+
+ah["base/s="] = [
+  ["s", "s", "Sentence"],
+  ["p", "p", "Paragraph"],
+  ["t", "t", "Text"]
+];
diff --git a/dev/js/src/hint/foundries/cnx.js b/dev/js/src/hint/foundries/cnx.js
new file mode 100644
index 0000000..0c6f8cb
--- /dev/null
+++ b/dev/js/src/hint/foundries/cnx.js
@@ -0,0 +1,63 @@
+var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+ah["-"].push(
+  ["Connexor", "cnx/", "Constituency, Lemma, Morphology, Part-of-Speech, Syntax"]
+);
+
+ah["cnx/"] = [
+  ["Constituency", "c="],
+  ["Lemma", "l="],
+  ["Morphology", "m="],
+  ["Part-of-Speech", "p="],
+  ["Syntax", "syn="]
+];
+
+ah["cnx/c="] = [
+  ["np", "np ", "Nominal Phrase"]
+];
+
+// http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/morph.html
+ah["cnx/m="] = [
+  ["Abbr","Abbr ", "Nouns: Abbreviation"],
+  ["CMP","CMP ", "Adjective: Comparative"],
+  ["IMP", "IMP ", "Mood: Imperative"],
+  ["IND", "IND ", "Mood: Indicative"],
+  ["INF", "INF ", "Infinitive"],
+  ["ORD","ORD ", "Numeral: Ordinal"],
+  ["PAST", "PAST ", "Tense: past"],
+  ["PCP", "PCP ", "Participle"],
+  ["PERF", "PERF ", "Perfective Participle"],
+  ["PL","PL ", "Nouns: Plural"],
+  ["PRES", "PRES ", "Tense: present"],
+  ["PROG", "PROG ", "Progressive Participle"],
+  ["Prop","Prop ", "Nouns: Proper Noun"],
+  ["SUB", "SUB ", "Mood: Subjunctive"],
+  ["SUP","SUP ", "Adjective: Superlative"]
+];
+
+// http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/morph.html
+ah["cnx/p="] = [
+  ["A", "A ", "Adjective"],
+  ["ADV", "ADV ", "Adverb"],
+  ["CC", "CC ", "Coordination Marker"],
+  ["CS", "CS ", "Clause Marker"],
+  ["DET", "DET ", "Determiner"],
+  ["INTERJ", "INTERJ ", "Interjection"],
+  ["N", "N ", "Noun"],
+  ["NUM", "NUM ", "Numeral"],
+  ["PREP", "PREP ", "Preposition"],
+  ["PRON", "PRON ", "Pro-Nominal"],
+  ["V", "V ", "Verb"]
+];
+
+// http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/syntax.html
+ah["cnx/syn="] = [
+  ["@ADVL", "@ADVL ", "Adverbial Head"],
+  ["@AUX", "@AUX ", "Auxiliary Verb"],
+  ["@CC", "@CC ", "Coordination"]
+  ["@MAIN", "@MAIN ", "Main Verb"],
+  ["@NH", "@NH ", "Nominal Head"],
+  ["@POSTMOD", "@POSTMOD ", "Postmodifier"],
+  ["@PREMARK", "@PREMARK ", "Preposed Marker"],
+  ["@PREMOD", "@POSTMOD ", "Premodifier"]
+];
diff --git a/dev/js/src/hint/foundries/corenlp.js b/dev/js/src/hint/foundries/corenlp.js
new file mode 100644
index 0000000..b591c62
--- /dev/null
+++ b/dev/js/src/hint/foundries/corenlp.js
@@ -0,0 +1,112 @@
+require(["hint/foundries/stts"], function (sttsArray) {
+  var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+  var namedEntities = [
+    ["I-LOC",  "I-LOC ",  "Location"],
+    ["I-MISC", "I-MISC ", "Miscellaneous"],
+    ["I-ORG",  "I-ORG ",  "Organization"],
+    ["I-PER",  "I-PER ",  "Person"]
+  ];
+
+  // http://www.coli.uni-saarland.de/projects/sfb378/negra-corpus/negra-corpus.html
+  // http://www.coli.uni-saarland.de/projects/sfb378/negra-corpus/knoten.html
+  var negraNodes = [
+    ["AA", "AA", "superlative phrase with 'am'"],
+    ["AP","AP", "adjektive phrase"],
+    ["AVP","AVP", "adverbial phrase"],
+    ["CAP","CAP", "coordinated adjektive phrase"],
+    ["CAVP","CAVP", "coordinated adverbial phrase"],
+    ["CAC","CAC", "coordinated adposition"],
+    ["CCP","CCP", "coordinated complementiser"],
+    ["CH","CH", "chunk"],
+    ["CNP","CNP", "coordinated noun phrase"],
+    ["CO","CO", "coordination"],
+    ["CPP","CPP", "coordinated adpositional phrase"],
+    ["CS","CS", "coordinated sentence"],
+    ["CVP","CVP", "coordinated verb phrase (non-finite)"],
+    ["CVZ","CVZ", "coordinated zu-marked infinitive"],
+    ["DL","DL", "discourse level constituent"],
+    ["ISU","ISU", "idiosyncratis unit"],
+    ["MPN","MPN", "multi-word proper noun"],
+    ["MTA","MTA", "multi-token adjective"],
+    ["NM","NM", "multi-token number"],
+    ["NP","NP", "noun phrase"],
+    ["PP","PP", "adpositional phrase"],
+    ["QL","QL", "quasi-languag"],
+    ["ROOT","ROOT", "root node"],
+    ["S","S", "sentence"],
+    ["VP","VP", "verb phrase (non-finite)"],
+    ["VZ","VZ", "zu-marked infinitive"]
+  ];
+
+  // http://www.coli.uni-saarland.de/projects/sfb378/negra-corpus/kanten.html
+  var negraEdges = [
+    ["AC","AC","adpositional case marker"],
+    ["ADC","ADC","adjective component"],
+    ["AMS","AMS","measure argument of adj"],
+    ["APP","APP","apposition"],
+    ["AVC","AVC","adverbial phrase component"],
+    ["CC","CC","comparative complement"],
+    ["CD","CD","coordinating conjunction"],
+    ["CJ","CJ","conjunct"],
+    ["CM","CM","comparative concjunction"],
+    ["CP","CP","complementizer"],
+    ["DA","DA","dative"],
+    ["DH","DH","discourse-level head"],
+    ["DM","DM","discourse marker"],
+    ["GL","GL","prenominal genitive"],
+    ["GR","GR","postnominal genitive"],
+    ["HD","HD","head"],
+    ["JU","JU","junctor"],
+    ["MC","MC","comitative"],
+    ["MI","MI","instrumental"],
+    ["ML","ML","locative"],
+    ["MNR","MNR","postnominal modifier"],
+    ["MO","MO","modifier"],
+    ["MR","MR","rhetorical modifier"],
+    ["MW","MW","way (directional modifier)"],
+    ["NG","NG","negation"],
+    ["NK","NK","noun kernel modifier"],
+    ["NMC","NMC","numerical component"], 
+    ["OA","OA","accusative object"],
+    ["OA2","OA2","second accusative object"], 
+    ["OC","OC","clausal object"],
+    ["OG","OG","genitive object"], 
+    ["PD","PD","predicate"],
+    ["PG","PG","pseudo-genitive"],
+    ["PH","PH","placeholder"],
+    ["PM","PM","morphological particle"],
+    ["PNC","PNC","proper noun component"], 
+    ["RC","RC","relative clause"],
+    ["RE","RE","repeated element"],
+    ["RS","RS","reported speech"],
+    ["SB","SB","subject"],
+    ["SBP","SBP","passivised subject (PP)"], 
+    ["SP","SP","subject or predicate"],
+    ["SVP","SVP","separable verb prefix"],
+    ["UC","UC","(idiosyncratic) unit component"], 
+    ["VO","VO","vocative"]
+  ];
+
+  ah["-"].push(
+    ["CoreNLP", "corenlp/", "Constituency, Named Entities, Part-of-Speech"]
+  );
+
+  ah["corenlp/"] = [
+    ["Constituency", "c="],
+    ["Named Entity", "ne=" , "Combined"],
+    ["Named Entity", "ne_dewac_175m_600=" , "ne_dewac_175m_600"],
+    ["Named Entity", "ne_hgc_175m_600=",    "ne_hgc_175m_600"],
+    ["Part-of-Speech", "p="]
+  ];
+
+  ah["corenlp/ne="] = namedEntities;
+  ah["corenlp/ne_dewac_175m_600="] = namedEntities;
+  ah["corenlp/ne_hgc_175m_600="] = namedEntities;
+  ah["corenlp/p="] = sttsArray;
+  ah["corenlp/c="] = negraNodes;
+
+  for (var i in negraNodes) {
+    ah["corenlp/c=" + negraNodes[i][0] + '-'] = negraEdges;
+  };
+});
diff --git a/dev/js/src/hint/foundries/dereko.js b/dev/js/src/hint/foundries/dereko.js
new file mode 100644
index 0000000..c8afe08
--- /dev/null
+++ b/dev/js/src/hint/foundries/dereko.js
@@ -0,0 +1,5 @@
+var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+ah["-"].push(
+  ["DeReKo", "dereko/s=", "Structure"]
+);
diff --git a/dev/js/src/hint/foundries/drukola.js b/dev/js/src/hint/foundries/drukola.js
new file mode 100644
index 0000000..2fec26d
--- /dev/null
+++ b/dev/js/src/hint/foundries/drukola.js
@@ -0,0 +1,105 @@
+var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+ah["-"].push(
+  ["DRuKoLa", "drukola/", "Lemma, Morphology, Part-of-Speech"]
+);
+
+ah["drukola/"] = [
+  ["Lemma", "l="],
+  ["Morphology", "m="],
+  ["Part-of-Speech", "p="]      
+];
+
+ah["drukola/m="] =  [
+  ["CTAG", "ctag:"]
+];
+
+ah["drukola/m=ctag:"] = [
+  ["A","A ","Adjective"],
+  ["Y","Y ","Abbreviation"],
+  ["AN","AN ","Adjective, Indefinite"],
+  ["APRY","APRY ","Adjective, Plural, Direct, Definite"],
+  ["APN","APN ","Adjective, Plural, Indefinite"],
+  ["APOY","APOY ","Adjective, Plural, Oblique, Definite"],
+  ["APON","APON ","Adjective, Plural, Oblique, Indefinite"],
+  ["ASRY","ASRY ","Adjective, Singular, Direct, Definite"],
+  ["ASN","ASN ","Adjective, Singular, Indefinite"],
+  ["ASOY","ASOY ","Adjective, Singular, Oblique, Definite"],
+  ["ASON","ASON ","Adjective, Singular, Oblique, Indefinite"],
+  ["ASVY","ASVY ","Adjective, Singular, Vocative, Definite"],
+  ["ASVN","ASVN ","Adjective, Singular, Vocative, Indefinite"],
+  ["R","R ","Adverb"],
+  ["RC","RC ","Adverb, Portmanteau"],
+  ["TS","TS ","Article, Definite or Possessive, Singular"],
+  ["TP","TP ","Article, Indefinite or Possessive, Plural"],
+  ["TPR","TPR ","Article, non-Possessive, Plural, Direct"],
+  ["TPO","TPO ","Article, non-Possessive, Plural, Oblique"],
+  ["TSR","TSR ","Article, non-Possessive, Singular, Direct"],
+  ["TSO","TSO ","Article, non-Possessive, Singular, Oblique"],
+  ["NPRY","NPRY ","Common Noun, Plural, Direct, Definite"],
+  ["NPN","NPN ","Common Noun, Plural, Indefinite"],
+  ["NPOY","NPOY ","Common Noun, Plural, Oblique, Definite"],
+  ["NPVY","NPVY ","Common Noun, Plural, Vocative, Definite"],
+  ["NN","NN ","Common Noun, singular"],
+  ["NSY","NSY ","Common Noun, Singular, Definite"],
+  ["NSRY","NSRY ","Common Noun, Singular, Direct, Definite"],
+  ["NSRN","NSRN ","Common Noun, Singular, Direct, Indefinite"],
+  ["NSN","NSN ","Common Noun, Singular, Indefinite"],
+  ["NSOY","NSOY ","Common Noun, Singular, Oblique, Definite"],
+  ["NSON","NSON ","Common Noun, Singular, Oblique, Indefinite"],
+  ["NSVY","NSVY ","Common Noun, Singular, Vocative, Definite"],
+  ["NSVN","NSVN ","Common Noun, Singular, Vocative, Indefinite"],
+  ["CR","CR ","Conjunctio, portmanteau"],
+  ["C","C ","Conjunction"],
+  ["QF","QF ","Future Particle"],
+  ["QN","QN ","Infinitival Particle"],
+  ["I","I ","Interjection"],
+  ["QZ","QZ ","Negative Particle"],
+  ["M","M ","Numeral"],
+  ["PP","PP ","Personal Pronoun"],
+  ["PPP","PPP ","Personal Pronoun, Plural"],
+  ["PPPA","PPPA ","Personal Pronoun, Plural, Acc."],
+  ["PPPD","PPPD ","Personal Pronoun, Plural, Dative"],
+  ["PPPR","PPPR ","Personal Pronoun, Plural, Direct"],
+  ["PPPO","PPPO ","Personal Pronoun, Plural, Oblique"],
+  ["PPS","PPS ","Personal Pronoun, Singular"],
+  ["PPSA","PPSA ","Personal Pronoun, Singular, Accusative"],
+  ["PPSD","PPSD ","Personal Pronoun, Singular, Dative"],
+  ["PPSR","PPSR ","Personal Pronoun, Singular, Direct"],
+  ["PPSN","PPSN ","Personal Pronoun, Singular, Nominative"],
+  ["PPSO","PPSO ","Personal Pronoun, Singular, Oblique"],
+  ["S","S ","Preposition"],
+  ["DMPR","DMPR ","Pronoun or Determiner, Demonstrative, Plural, Direct"],
+  ["DMPO","DMPO ","Pronoun or Determiner, Demonstrative, Plural, Oblique"],
+  ["DMSR","DMSR ","Pronoun or Determiner, Demonstrative, Singular, Direct"],
+  ["DMSO","DMSO ","Pronoun or Determiner, Demonstrative, Singular, Oblique"],
+  ["PS","PS ","Pronoun or Determiner, Poss or Emph"],
+  ["PSS","PSS ","Pronoun or Determiner, Poss or Emph, Singular"],
+  ["RELR","RELR ","Pronoun or Determiner, Relative, Direct"],
+  ["RELO","RELO ","Pronoun or Determiner, Relative, Oblique"],
+  ["NP","NP ","Proper Noun"],
+  ["PI","PI ","Quantifier Pronoun or Determiner"],
+  ["PXA","PXA ","Reflexive Pronoun, Accusative"],
+  ["PXD","PXD ","Reflexive Pronoun, Dative"],
+  ["X","X ","Residual"],
+  ["QS","QS ","Subjunctive Particle"],
+  ["VA","VA ","Verb, Auxiliary"],
+  ["VA1","VA1 ","Verb, Auxiliary, 1st person"],
+  ["VA2P","VA2P ","Verb, Auxiliary, 2nd person, Plural"],
+  ["VA2S","VA2S ","Verb, Auxiliary, 2nd person, Singular"],
+  ["VA3","VA3 ","Verb, Auxiliary, 3rd person"],
+  ["VA3P","VA3P ","Verb, Auxiliary, 3rd person, Plural"],
+  ["VA3S","VA3S ","Verb, Auxiliary, 3rd person, Singular"],
+  ["VA1P","VA1P ","Verb, Auxiliary,1st person, Plural"],
+  ["VA1S","VA1S ","Verb, Auxiliary,1st person, Singular"],
+  ["VG","VG ","Verb, Gerund"],
+  ["VN","VN ","Verb, Infinitive"],
+  ["V1","V1 ","Verb, Main, 1st person"],
+  ["V2","V2 ","Verb, Main, 2nd person"],
+  ["V3","V3 ","Verb, Main, 3rd person"],
+  ["VPPF","VPPF ","Verb, Participle, Plural, Feminine"],
+  ["VPPM","VPPM ","Verb, Participle, Plural, Masculine"],
+  ["VPSF","VPSF ","Verb, Participle, Singular, Feminine"],
+  ["VPSM","VPSM ","Verb, Participle, Singular, Masculine"]
+];
+
diff --git a/dev/js/src/hint/foundries/malt.js b/dev/js/src/hint/foundries/malt.js
new file mode 100644
index 0000000..c81df9e
--- /dev/null
+++ b/dev/js/src/hint/foundries/malt.js
@@ -0,0 +1,47 @@
+var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+ah["-"].push(
+  ["Malt", "malt/", "Dependency"]
+);
+
+ah["malt/"] = [
+  ["Dependency", "d="]
+];
+
+ah["malt/d="] = [
+  ["-PUNCT-", "-PUNCT- "],
+  ["-UNKNOWN-","-UNKNOWN- "],
+  ["ADV","ADV "],
+  ["APP","APP "],
+  ["ATTR","ATTR "],
+  ["AUX","AUX "],
+  ["AVZ","AVZ "],
+  ["CJ","CJ "],
+  ["DET","DET "],
+  ["EXPL","EXPL "],
+  ["GMOD","GMOD "],
+  ["GRAD","GRAD "],
+  ["KOM","KOM "],
+  ["KON","KON "],
+  ["KONJ","KONJ "],
+  ["NEB","NEB "],
+  ["OBJA","OBJA "],
+  ["OBJC","OBJC "],
+  ["OBJD","OBJD "],
+  ["OBJG","OBJG "],
+  ["OBJI","OBJI "],
+  ["OBJP","OBJP "],
+  ["PAR","PAR "],
+  ["PART","PART "],
+  ["PN","PN "],
+  ["PP","PP "],
+  ["PRED","PRED "],
+  ["REL","REL "],
+  ["ROOT","ROOT "],
+  ["S","S "],
+  ["SUBJ","SUBJ "],
+  ["SUBJC","SUBJC "],
+  ["ZEIT","ZEIT "],
+  ["gmod-app","gmod-app "],
+  ["koord","koord "]
+];
diff --git a/dev/js/src/hint/foundries/marmot.js b/dev/js/src/hint/foundries/marmot.js
new file mode 100644
index 0000000..0b80292
--- /dev/null
+++ b/dev/js/src/hint/foundries/marmot.js
@@ -0,0 +1,69 @@
+require(["hint/foundries/stts"], function () {
+  var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+  ah["-"].push(
+    ["MarMoT", "marmot/", "Morphology, Part-of-Speech"]
+  );
+
+  ah["marmot/"] = [
+    ["Morphology", "m="],
+    ["Part-of-Speech", "p="]
+  ];
+
+  ah["marmot/p="] = sttsArray;
+
+  ah["marmot/m="] = [
+    ["Case", "case:"],
+    ["Degree", "degree:"],
+    ["Gender", "gender:"],
+    ["Mood", "mood:"],
+    ["Number", "number:"],
+    ["Person", "person:"],
+    ["Tense","tense:"],
+    ["No type", "<no-type> "]
+  ];
+
+  ah["marmot/m=case:"] = [
+    ["acc", "acc ", "Accusative"],
+    ["dat","dat ", "Dative"],
+    ["gen", "gen ","Genitive"],
+    ["nom","nom ", "Nominative"],
+    ["*","* ", "Undefined"]
+  ];
+
+  ah["marmot/m=degree:"] = [
+    ["comp","comp ", "Comparative"],
+    ["pos","pos ", "Positive"],
+    ["sup","sup ", "Superative"]
+  ];
+  
+  ah["marmot/m=gender:"] = [
+    ["fem", "fem ", "Feminium"],
+    ["masc", "masc ", "Masculinum"],
+    ["neut","neut ", "Neuter"],
+    ["*","* ","Undefined"]
+  ];
+
+  ah["marmot/m=mood:"] = [
+    ["imp","imp ", "Imperative"],
+    ["ind","ind ", "Indicative"],
+    ["subj","subj ", "Subjunctive"]
+  ];
+
+  ah["marmot/m=number"] = [
+    ["pl","pl ","Plural"],
+    ["sg","sg ","Singular"],
+    ["*","* ","Undefined"]
+  ];
+
+  ah["marmot/m=person:"] = [
+    ["1","1 ", "First Person"],
+    ["2","2 ", "Second Person"],
+    ["3","3 ", "Third Person"]
+  ];
+
+  ah["marmot/m=tense:"] = [
+    ["past","past ", "Past"],
+    ["pres","pres ", "Present"]
+  ];
+});
diff --git a/dev/js/src/hint/foundries/mate.js b/dev/js/src/hint/foundries/mate.js
new file mode 100644
index 0000000..d837fd7
--- /dev/null
+++ b/dev/js/src/hint/foundries/mate.js
@@ -0,0 +1,76 @@
+require(["hint/foundries/stts"], function (sttsArray) {
+  var mateSttsArray = sttsArray.slice(0);
+  mateSttsArray.push(
+    ["<root-POS>","<root-POS>","Root Part of Speech"]
+  );
+
+  var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+  ah["-"].push(
+    ["Mate", "mate/", "Lemma, Morphology, Part-of-Speech"]
+  );
+
+  ah["mate/"] = [
+    // Inactive: "d" : ["d=", "Dependency"],
+    ["Lemma", "l="],
+    ["Morphology", "m="],
+    ["Part-of-Speech", "p="]
+  ];
+
+  // Inactive: mate/d=
+  ah["mate/p="] = mateSttsArray;
+
+  ah["mate/m="] = [
+    ["Case", "case:"],
+    ["Degree", "degree:"],
+    ["Gender", "gender:"],
+    ["Mood", "mood:"],
+    ["Number", "number:"],
+    ["Person", "person:"],
+    ["Tense","tense:"],
+    ["No type", "<no-type> "]
+  ];
+
+  ah["mate/m=case:"] = [
+    ["acc", "acc ", "Accusative"],
+    ["dat","dat ", "Dative"],
+    ["gen", "gen ","Genitive"],
+    ["nom","nom ", "Nominative"],
+    ["*","* ", "Undefined"]
+  ];
+
+  ah["mate/m=degree:"] = [
+    ["comp","comp ", "Comparative"],
+    ["pos","pos ", "Positive"],
+    ["sup","sup ", "Superative"]
+  ];
+
+  ah["mate/m=gender:"] = [
+    ["fem", "fem ", "Feminium"],
+    ["masc", "masc ", "Masculinum"],
+    ["neut","neut ", "Neuter"],
+    ["*","* ","Undefined"]
+  ];
+
+  ah["mate/m=mood:"] = [
+    ["imp","imp ", "Imperative"],
+    ["ind","ind ", "Indicative"],
+    ["subj","subj ", "Subjunctive"]
+  ];
+
+  ah["mate/m=number:"] = [
+    ["pl","pl ","Plural"],
+    ["sg","sg ","Singular"],
+    ["*","* ","Undefined"]
+  ];
+
+  ah["mate/m=person:"] = [
+    ["1","1 ", "First Person"],
+    ["2","2 ", "Second Person"],
+    ["3","3 ", "Third Person"]
+  ];
+  ah["mate/m=tense:"] = [
+    ["past","past ", "Past"],
+    ["pres","pres ", "Present"]
+  ];
+});
diff --git a/dev/js/src/hint/foundries/opennlp.js b/dev/js/src/hint/foundries/opennlp.js
new file mode 100644
index 0000000..267bf8d
--- /dev/null
+++ b/dev/js/src/hint/foundries/opennlp.js
@@ -0,0 +1,14 @@
+require(["hint/foundries/stts"], function (sttsArray) {
+  
+  var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+  ah["-"].push(
+    ["OpenNLP", "opennlp/", "Part-of-Speech"]
+  );
+
+  ah["opennlp/"] = [
+    ["Part-of-Speech", "p="]
+  ];
+
+  ah["opennlp/p="] = sttsArray;
+});
diff --git a/dev/js/src/hint/foundries/schreibgebrauch.js b/dev/js/src/hint/foundries/schreibgebrauch.js
new file mode 100644
index 0000000..7cce57e
--- /dev/null
+++ b/dev/js/src/hint/foundries/schreibgebrauch.js
@@ -0,0 +1,48 @@
+require(["hint/foundries/stts"], function (sttsArray) {
+  var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+  var sgbrSttsArray = sttsArray.slice(0);
+
+  // Push specific information for Schreibgebrauch
+  sgbrSttsArray.push(
+    ["NNE", "NNE", "Normal Nomina with Named Entity"],
+    ["ADVART","ADVART",   "Adverb with Article"],
+    ["EMOASC","EMOASC",   "ASCII emoticon"],
+    ["EMOIMG","EMOIMG",   "Graphic emoticon"],
+    ["ERRTOK","ERRTOK",   "Tokenisation Error"],
+    ["HST",     "HST",      "Hashtag"],
+    ["KOUSPPER","KOUSPPER", "Subordinating Conjunction (with Sentence) with Personal Pronoun"],
+    ["ONO",     "ONO",      "Onomatopoeia"],
+    ["PPERPPER","PPERPPER", "Personal Pronoun with Personal Pronoun"],
+    ["URL",     "URL",      "Uniform Resource Locator"],
+    ["VAPPER",  "VAPPER",   "Finite Auxiliary Verb with Personal Pronoun"],
+    ["VMPPER",  "VMPPER",   "Fintite Modal Verb with Personal Pronoun"],
+    ["VVPPER",  "VVPPER",   "Finite Full Verb with Personal Pronoun"],
+    ["AW", "AW", "Interaction Word"],
+    ["ADR", "ADR", "Addressing Term"],
+    ["AWIND", "AWIND", "Punctuation Indicating Addressing Term"],
+    ["ERRAW","ERRAW", "Part of Erroneously Separated Compound"]
+    /*
+      As KorAP currently doesn't support these tags, they could also be ommited
+      ["_KOMMA", "_KOMMA", "Comma"],
+      ["_SONST", "_SONST", "Intrasentential Punctuation Mark"],
+      ["_ENDE", "_ENDE", "Punctuation Mark at the end of the Sentence"]
+    */
+  );
+
+  // Sort by tag
+  sgbrSttsArray.sort(function (a,b) { return a[0].localeCompare(b[0]) });
+
+  
+  ah["-"].push(
+    ["Schreibgebrauch", "sgbr/", "Lemma, Lemma Variants, Part-of-Speech"]
+  );
+
+  ah["sgbr/"] = [
+    ["Lemma", "l="],
+    ["Lemma Variants", "lv="],
+    ["Part-of-Speech", "p="]
+  ];
+
+  ah["sgbr/p="] = sgbrSttsArray;
+});
diff --git a/dev/js/src/hint/foundries/stts.js b/dev/js/src/hint/foundries/stts.js
new file mode 100644
index 0000000..f7d3b62
--- /dev/null
+++ b/dev/js/src/hint/foundries/stts.js
@@ -0,0 +1,59 @@
+define(function () {
+  return [
+    // http://www.ids-mannheim.de/cosmas2/projekt/referenz/stts/morph.html
+    // http://nachhalt.sfb632.uni-potsdam.de/owl-docu/stts.html
+    // "$.", "$(", "$,"
+    ["ADJA","ADJA ", "Attributive Adjective"],
+    ["ADJD","ADJD ", "Predicative Adjective"],
+    ["ADV","ADV ", "Adverb"],
+    ["APPO","APPO ", "Postposition"],
+    ["APPR","APPR ", "Preposition"],
+    ["APPRART","APPRART ", "Preposition with Determiner"],
+    ["APZR","APZR ","Right Circumposition"],
+    ["ART","ART ", "Determiner"],
+    ["CARD","CARD ", "Cardinal Number"],
+    ["FM","FM ", "Foreign Material"],
+    ["ITJ","ITJ ", "Interjection"],
+    ["KOKOM","KOKOM ", "Comparison Particle"],
+    ["KON","KON ", "Coordinating Conjuncion"],
+    ["KOUI","KOUI ", "Subordinating Conjunction with 'zu'"],
+    ["KOUS","KOUS ", "Subordinating Conjunction with Sentence"],
+    ["NE","NE ", "Named Entity"],
+    ["NN","NN ", "Normal Nomina"],
+    ["PAV", "PAV ", "Pronominal Adverb"],
+    ["PDAT","PDAT ","Attributive Demonstrative Pronoun"],
+    ["PDS","PDS ", "Substitutive Demonstrative Pronoun"],
+    ["PIAT","PIAT ", "Attributive Indefinite Pronoun without Determiner"],
+    ["PIDAT","PIDAT ", "Attributive Indefinite Pronoun with Determiner"],
+    ["PIS","PIS ", "Substitutive Indefinite Pronoun"],
+    ["PPER","PPER ", "Personal Pronoun"],
+    ["PPOSAT","PPOSAT ", "Attributive Possessive Pronoun"],
+    ["PPOSS","PPOSS ", "Substitutive Possessive Pronoun"],
+    ["PRELAT","PRELAT ", "Attributive Relative Pronoun"],
+    ["PRELS","PRELS ", "Substitutive Relative Pronoun"],
+    ["PRF","PRF ", "Reflexive Pronoun"],
+    ["PROAV","PROAV ", "Pronominal Adverb"],
+    ["PTKA","PTKA ","Particle with Adjective"],
+    ["PTKANT","PTKANT ", "Answering Particle"],
+    ["PTKNEG","PTKNEG ", "Negation Particle"],
+    ["PTKVZ","PTKVZ ", "Separated Verbal Particle"],
+    ["PTKZU","PTKZU ", "'zu' Particle"],
+    ["PWAT","PWAT ", "Attributive Interrogative Pronoun"],
+    ["PWAV","PWAV ", "Adverbial Interrogative Pronoun"],
+    ["PWS","PWS ", "Substitutive Interrogative Pronoun"],
+    ["TRUNC","TRUNC ","Truncated"],
+    ["VAFIN","VAFIN ", "Auxiliary Finite Verb"],
+    ["VAIMP","VAIMP ", "Auxiliary Finite Imperative Verb"],
+    ["VAINF","VAINF ", "Auxiliary Infinite Verb"],
+    ["VAPP","VAPP ", "Auxiliary Perfect Participle"],
+    ["VMFIN","VMFIN ", "Modal Finite Verb"],
+    ["VMINF","VMINF ", "Modal Infinite Verb"],
+    ["VMPP","VMPP ", "Modal Perfect Participle"],
+    ["VVFIN","VVFIN ","Finite Verb"],
+    ["VVIMP","VVIMP ", "Finite Imperative Verb"],
+    ["VVINF","VVINF ", "Infinite Verb"],
+    ["VVIZU","VVIZU ", "Infinite Verb with 'zu'"],
+    ["VVPP","VVPP ", "Perfect Participle"],
+    ["XY", "XY ", "Non-Word"]
+  ];
+});
diff --git a/dev/js/src/hint/foundries/treetagger.js b/dev/js/src/hint/foundries/treetagger.js
new file mode 100644
index 0000000..35fcfcc
--- /dev/null
+++ b/dev/js/src/hint/foundries/treetagger.js
@@ -0,0 +1,14 @@
+require(["hint/foundries/stts"], function (sttsArray) {
+  var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+  ah["-"].push(
+    ["TreeTagger", "tt/", "Lemma, Part-of-Speech"]
+  );
+
+  ah["tt/"] = [
+    ["Lemma", "l="],
+    ["Part-of-Speech", "p="]
+  ];
+
+  ah["tt/p="] = sttsArray;
+});
diff --git a/dev/js/src/hint/foundries/xip.js b/dev/js/src/hint/foundries/xip.js
new file mode 100644
index 0000000..cd9fc8a
--- /dev/null
+++ b/dev/js/src/hint/foundries/xip.js
@@ -0,0 +1,12 @@
+var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+
+ah["-"].push(
+  ["Xerox Parser", "xip/", "Constituency, Lemma, Part-of-Speech"]
+);
+
+ah["xip/"] = [
+  ["Constituency", "c="],
+  // Inactive: ["Dependency", "d="],
+  ["Lemma", "l="],
+  ["Part-of-Speech", "p="]
+];
diff --git a/dev/js/src/init.js b/dev/js/src/init.js
index 6eee4f8..fdc2fab 100644
--- a/dev/js/src/init.js
+++ b/dev/js/src/init.js
@@ -16,7 +16,6 @@
   'vc',
   'tutorial',
   'lib/domReady',
-  'hint/array',
   'vc/array',
   'lib/alertify',
   'session',
@@ -31,16 +30,12 @@
              vcClass,
              tutClass,
              domReady,
-             hintArray,
              vcArray,
              alertifyClass,
              sessionClass,
              tagger,
              selectMenuClass) {
 
-  // Set hint array for hint helper
-  KorAP.hintArray = hintArray;
-
   // Localization values
   var loc = KorAP.Locale;
   loc.VC_allCorpora    = loc.VC_allCorpora    || 'all corpora';
diff --git a/dev/js/src/menu.js b/dev/js/src/menu.js
index e575b7e..e3a8c40 100644
--- a/dev/js/src/menu.js
+++ b/dev/js/src/menu.js
@@ -13,6 +13,7 @@
  *       or anytime items would be outside the screen.
  * TODO: Add a .match() method to items for scrolling and probably for prefixing.
  * TODO: Add static header (for title, sortation fields, but also for menu points like "fragments" and "history".
+ * TODO: Support space separated list of prefixes so "co no" will highlight "common noun"
  */
 define([
   'menu/item',
