diff --git a/libwccl/ops/rulesequence.cpp b/libwccl/ops/rulesequence.cpp
index b5c1f8ac681b7f4f6889019bece07e4df167bad2..e82a8133058961c4cc33b164cf7fd92454d1b320 100644
--- a/libwccl/ops/rulesequence.cpp
+++ b/libwccl/ops/rulesequence.cpp
@@ -4,7 +4,7 @@
 
 namespace Wccl {
 
-Bool RuleSequence::execute_once(const boost::shared_ptr<Corpus2::Sentence>& sentence)
+Bool TagRuleSequence::execute_once(const boost::shared_ptr<Corpus2::Sentence>& sentence)
 {
 	if(!sentence || sentence->empty()) {
 		throw InvalidArgument(
@@ -24,7 +24,7 @@ Bool RuleSequence::execute_once(const boost::shared_ptr<Corpus2::Sentence>& sent
 	return changed;
 }
 
-int RuleSequence::execute_until_done(const boost::shared_ptr<Corpus2::Sentence>& sentence, int max_iter)
+int TagRuleSequence::execute_until_done(const boost::shared_ptr<Corpus2::Sentence>& sentence, int max_iter)
 {
 	if(max_iter < 0) {
 		throw InvalidArgument(
diff --git a/libwccl/ops/rulesequence.h b/libwccl/ops/rulesequence.h
index 1015a9bf25e6b776a2eaf2988de36485f7471b4b..671271e7359b01703bd9059978de07ae54730168 100644
--- a/libwccl/ops/rulesequence.h
+++ b/libwccl/ops/rulesequence.h
@@ -11,12 +11,12 @@ namespace Wccl {
  * for all positions of a Sentence.
  * @note The class methods are not thread-safe
  */
-class RuleSequence : public std::vector<TagRule>
+class TagRuleSequence : public std::vector<TagRule>
 {
 public:
-	RuleSequence(std::vector<TagRule> rules);
+	TagRuleSequence(std::vector<TagRule> rules);
 
-	RuleSequence();
+	TagRuleSequence();
 
 	/**
 	 * Executes all contained Rules sequentially, once for each position
@@ -73,17 +73,17 @@ public:
 //--- implementation details ---
 //
 inline
-RuleSequence::RuleSequence(std::vector<TagRule> rules)
+TagRuleSequence::TagRuleSequence(std::vector<TagRule> rules)
 	: std::vector<TagRule>(rules) {
 }
 
 inline
-RuleSequence::RuleSequence()
+TagRuleSequence::TagRuleSequence()
 	: std::vector<TagRule>() {
 }
 
 inline
-Bool RuleSequence::operator()(const boost::shared_ptr<Corpus2::Sentence>& sentence) {
+Bool TagRuleSequence::operator()(const boost::shared_ptr<Corpus2::Sentence>& sentence) {
 	return execute_once(sentence);
 }
 
diff --git a/libwccl/parser/Parser.cpp b/libwccl/parser/Parser.cpp
index f78dec74c16f61a6715715de4d968d9eb4522fd1..54813edf5482b18d0079cb71347386819b8ae79a 100644
--- a/libwccl/parser/Parser.cpp
+++ b/libwccl/parser/Parser.cpp
@@ -392,18 +392,18 @@ boost::shared_ptr<FunctionalOperator> Parser::parseAnyOperator(
 
 /**
  * @desc Parse rule sequence contained in a std::string. Converts the string
- *       to a stream and calls parseRuleSequence with it
+ *       to a stream and calls parseTagRuleSequence with it
  * @arg str rules string
  * @return the parsed rule sequence via a shared pointer
  */
-boost::shared_ptr<RuleSequence> Parser::parseRuleSequence(
+boost::shared_ptr<TagRuleSequence> Parser::parseTagRuleSequence(
 		const std::string& str) const
 {
 	std::stringstream ss (std::stringstream::in | std::stringstream::out);
 	ss << str;
 
 	try {
-		return this->parseRuleSequence(ss);
+		return this->parseTagRuleSequence(ss);
 	}
 	catch (ParserException&) {
 		throw;
@@ -416,12 +416,12 @@ boost::shared_ptr<RuleSequence> Parser::parseRuleSequence(
  * @arg istr input stream with writed rules
  * @return the parsed rule sequence via a shared pointer
  */
-boost::shared_ptr<RuleSequence> Parser::parseRuleSequence(
+boost::shared_ptr<TagRuleSequence> Parser::parseTagRuleSequence(
 		std::istream& istr) const
 {
 	ANTLRLexer lexer(istr);
 	ANTLRParser parser(lexer);
-	boost::shared_ptr<RuleSequence> res;
+	boost::shared_ptr<TagRuleSequence> res;
 
 	try {
 		res = parser.parse_rule_sequence(tagset_);
diff --git a/libwccl/parser/Parser.h b/libwccl/parser/Parser.h
index 0d7e49cf4b4520d1a41f0a6111813ffa78629e88..0f619e7229f0fa4c965ee9b0f0506d6f453e782f 100644
--- a/libwccl/parser/Parser.h
+++ b/libwccl/parser/Parser.h
@@ -69,10 +69,10 @@ public:
 
 	// ---------------------------------------------------------------------------
 	// Parsing rule sequence from input string
-	boost::shared_ptr<RuleSequence>
-			parseRuleSequence(const std::string& rule_string) const;
-	boost::shared_ptr<RuleSequence>
-			parseRuleSequence(std::istream& is) const;
+	boost::shared_ptr<TagRuleSequence>
+			parseTagRuleSequence(const std::string& rule_string) const;
+	boost::shared_ptr<TagRuleSequence>
+			parseTagRuleSequence(std::istream& is) const;
 
 	// ---------------------------------------------------------------------------
 	// Parsing single rule from input string
diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 0a4d7952d443790f8bc6c1f8cceedb5ce2df7f5e..00324e02fbc6e5beb39420e9bb636f2f1914e846 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -247,10 +247,10 @@ parse_single_rule
 ;
 
 // Rule for parsing rules section in the wccl file
-// Returns boost::shared_ptr<RuleSequence>
+// Returns boost::shared_ptr<TagRuleSequence>
 parse_rule_sequence
 	[const Corpus2::Tagset& tagset]
-	returns [boost::shared_ptr<RuleSequence> rule_seq]
+	returns [boost::shared_ptr<TagRuleSequence> rule_seq]
 {
 	ParsingScope scope(tagset);
 }
@@ -1856,12 +1856,12 @@ rule
 // Rule sequence
 rule_sequence
 	[ParsingScope& scope]
-	returns [boost::shared_ptr<RuleSequence> rule_seq]
+	returns [boost::shared_ptr<TagRuleSequence> rule_seq]
 {
 	// FIXME czy tutaj przypadkiem nie powinno byc shared_ptr?
 	boost::shared_ptr<TagRule> rle;
 
-	rule_seq.reset(new RuleSequence());
+	rule_seq.reset(new TagRuleSequence());
 }
 	: rle = rule [scope] {
 		rule_seq->push_back(*rle);
@@ -1877,7 +1877,7 @@ rule_sequence
 // This is wrapper for rule_sequence in rules section in the wccl file
 rules
 	[ParsingScope& scope]
-	returns [boost::shared_ptr<RuleSequence> rule_seq]
+	returns [boost::shared_ptr<TagRuleSequence> rule_seq]
 	: "rules" LPAREN rule_seq = rule_sequence [scope] RPAREN {
 		//
 	}
diff --git a/tests/datarule.cpp b/tests/datarule.cpp
index 24d0d4fd267816f45e1a86ae19574c3891bea099..b85e858fec5051ac770d2119bf34ae049fb53acb 100644
--- a/tests/datarule.cpp
+++ b/tests/datarule.cpp
@@ -109,7 +109,7 @@ void test_one_rule_item_actual(const rule_compare_test& c)
 	std::string rf = c.rule_file.string();
 	std::ifstream is(rf.c_str());
 	BOOST_REQUIRE(is.good());
-	boost::shared_ptr<Wccl::RuleSequence> rules = parser.parseRuleSequence(is);
+	boost::shared_ptr<Wccl::TagRuleSequence> rules = parser.parseTagRuleSequence(is);
 	for (size_t i = 0; i < chunk->sentences().size(); ++i) {
 		Corpus2::Sentence::Ptr sentence = chunk->sentences()[i]->clone_shared();
 		Corpus2::Sentence::Ptr expected_sentence = expected->sentences()[i];
diff --git a/wccl-apps/wccl-rules.cpp b/wccl-apps/wccl-rules.cpp
index e25257cabddb07a3ce520a683a05882e78108f16..9a8c15a36893cf711da8f9e85134af95727e3e66 100644
--- a/wccl-apps/wccl-rules.cpp
+++ b/wccl-apps/wccl-rules.cpp
@@ -31,16 +31,16 @@ namespace {
 	};
 }
 
-bool load_more_rules(Wccl::Parser& parser, const std::string& filename, Wccl::RuleSequence& rules)
+bool load_more_rules(Wccl::Parser& parser, const std::string& filename, Wccl::TagRuleSequence& rules)
 {
-	boost::shared_ptr<Wccl::RuleSequence> ret;
+	boost::shared_ptr<Wccl::TagRuleSequence> ret;
 	try {
 		std::ifstream is(filename.c_str());
 		if (!is.good()) {
 			throw Wccl::FileNotFound(filename, "", __FUNCTION__);
 		}
 
-		ret = parser.parseRuleSequence(is);
+		ret = parser.parseTagRuleSequence(is);
 		if (ret) {
 			if (!quiet) {
 				std::cerr << "Loaded " << ret->size() << " rule(s) from "
@@ -73,7 +73,7 @@ bool load_more_rules(Wccl::Parser& parser, const std::string& filename, Wccl::Ru
 }
 
 void apply_rules(boost::shared_ptr<Corpus2::TokenReader> reader,
-	boost::shared_ptr<Corpus2::TokenWriter> writer, Wccl::RuleSequence& rules,
+	boost::shared_ptr<Corpus2::TokenWriter> writer, Wccl::TagRuleSequence& rules,
 	const options& opts)
 {
 	Corpus2::TokenTimer& timer = Corpus2::global_timer();
@@ -197,7 +197,7 @@ int main(int argc, char** argv)
 	try {
 		const Corpus2::Tagset& tagset = Corpus2::get_named_tagset(tagset_load);
 		Wccl::Parser parser(tagset);
-		Wccl::RuleSequence rules;
+		Wccl::TagRuleSequence rules;
 		foreach (const std::string& f, ccl_files) {
 			size_t sz = rules.size();
 			if (!load_more_rules(parser, f, rules)) {