diff --git a/libwccl/ops/match/matchaction.h b/libwccl/ops/match/matchaction.h
new file mode 100644
index 0000000000000000000000000000000000000000..507499cbe5caeced65dfe067c2ec5ba8820e5cb0
--- /dev/null
+++ b/libwccl/ops/match/matchaction.h
@@ -0,0 +1,24 @@
+#ifndef LIBWCCL_OPS_MATCH_MATCHACTION_H
+#define LIBWCCL_OPS_MATCH_MATCHACTION_H
+
+namespace Wccl {
+
+/**
+ * Abstract base class for actions in WCCL match rules
+ */
+class MatchAction : public Expression
+{
+public:
+	/**
+	 * @returns Name of the action.
+	 */
+	virtual std::string name() const = 0;
+	/**
+	 * Executes the action for the given execution context.
+	 */
+	virtual void execute(const ActionExecContext& context) const = 0;
+};
+
+} /* end ns Wccl */
+
+#endif // LIBWCCL_OPS_MATCH_MATCHACTION_H
diff --git a/libwccl/ops/tagaction.h b/libwccl/ops/tagaction.h
index c41ef95f7308790d146971fb7a52ed268b70f98a..f30428c3a5885a801a8a7f754bab58aa3e80a31a 100644
--- a/libwccl/ops/tagaction.h
+++ b/libwccl/ops/tagaction.h
@@ -8,7 +8,7 @@
 namespace Wccl {
 
 /**
- * Abstract base class for actions in WCCL rules
+ * Abstract base class for actions in WCCL tagging rules
  */
 class TagAction : public Expression
 {