public List<String> toBag(String query) {
        Preconditions.checkNotNull(query);

        List<String> ls = Lists.newArrayList();

        String prev = null;
        for (String term : SPLITTER.split(Dictionary.applyReplacements(query))) {
            String x = checker.correct(simplify(term));
            String u;
            if (prev != null && (x.matches(YEAR_OR_VERSION) || checker.isKnown(prev + x))) {
                u = prev + x;
            } else {
                u = x;
            }
            ls.addAll(Lists.newArrayList(checker.split(u)));
            prev = x;
        }
        return ls;
    }