diff --git a/libwccl/ops/match/applyoperator.h b/libwccl/ops/match/applyoperator.h
index 526218a4e2cc56d62591fbe8edabffbcca468ce5..2feea7ced77370ed5810c8200ac74a9a5a6cf1b3 100644
--- a/libwccl/ops/match/applyoperator.h
+++ b/libwccl/ops/match/applyoperator.h
@@ -1,11 +1,12 @@
 #ifndef LIBWCCL_OPS_MATCH_APPLYOPERATOR_H
 #define LIBWCCL_OPS_MATCH_APPLYOPERATOR_H
 
-#include <libwccl/ops/function.h>
+#include <libwccl/ops/functions/bool/predicates/logicalpredicate.h>
 
 #include <libwccl/ops/match/matchoperator.h>
 #include <libwccl/ops/match/matchaction.h>
 
+
 namespace Wccl {
 
 /**
@@ -14,7 +15,7 @@ namespace Wccl {
 class ApplyOperator : public Expression
 {
 public:
-
+	typedef LogicalPredicate::BoolFunctionPtrVector BoolFunctionPtrVector;
 	/**
 	  * @param cur_iter_pos Accessor to the "$_" variable
 	  * @param matches Accessor to the "$m:_M" variable
@@ -27,9 +28,8 @@ public:
 			const VariableAccessor<Match>& matches,
 			const boost::shared_ptr<const MatchOperator>& match_op,
 			const boost::shared_ptr<const std::vector<boost::shared_ptr<MatchAction> > >& actions,
-			const boost::shared_ptr<const std::vector<boost::shared_ptr<Function<Bool> > > >& conditions
-				= boost::shared_ptr<const std::vector<boost::shared_ptr<Function<Bool> > > >(
-					new boost::shared_ptr<const std::vector<boost::shared_ptr<Function<Bool> > > >()));
+			const boost::shared_ptr<const BoolFunctionPtrVector>& conditions
+				= boost::shared_ptr<const BoolFunctionPtrVector>(new BoolFunctionPtrVector()));
 
 	/**
 	 * @returns Name of the operator.