diff --git a/libwccl/ops/and.cpp b/libwccl/ops/and.cpp
index 893eb6a2ee911046686e9657c9265b68edeeeac5..758ce19d4acfe63f1271b27bcbb46c31e055375c 100644
--- a/libwccl/ops/and.cpp
+++ b/libwccl/ops/and.cpp
@@ -1,4 +1,4 @@
-#include "and.h"
+#include <libwccl/ops/and.h>
 
 namespace Wccl {
 
diff --git a/libwccl/ops/and.h b/libwccl/ops/and.h
index 1f533d4a58bf2cf5cc5e1fd0fb917bfdd59249d3..b6e44c607ececf04a85f373f7fd27789d63ad33d 100644
--- a/libwccl/ops/and.h
+++ b/libwccl/ops/and.h
@@ -8,6 +8,9 @@
 
 namespace Wccl {
 
+/**
+ * Operator that realises "and" logical predicate
+ */
 class And : public LogicalPredicate
 {
 public:
@@ -20,8 +23,9 @@ protected :
 	typedef FunctionBase::BaseRetValPtr BaseRetValPtr ;
 
 	/**
-	 * "And" predicate returns True only when all expressions are true,
-	 * otherwise it returns False
+	 * "And" predicate evaluates each expression from left to right,
+     * and returns False once an expression evaluating to False is found.
+     * If all expressions were True, it returns True.
 	 */
 	virtual BaseRetValPtr apply_internal(const SentenceContext&) const;