diff --git a/src/Aggregation/Pipeline/AbstractPipelineAggregation.php b/src/Aggregation/Pipeline/AbstractPipelineAggregation.php
index 8e202532060e1f08a08c39b0c59aeee3c8eeba99..5fe680dfea33596025c7d2698ae25126ce2005d0 100644
--- a/src/Aggregation/Pipeline/AbstractPipelineAggregation.php
+++ b/src/Aggregation/Pipeline/AbstractPipelineAggregation.php
@@ -3,8 +3,48 @@
 namespace ONGR\ElasticsearchDSL\Aggregation\Pipeline;
 
 use ONGR\ElasticsearchDSL\Aggregation\AbstractAggregation;
+use ONGR\ElasticsearchDSL\Aggregation\Type\MetricTrait;
 
 abstract class AbstractPipelineAggregation extends AbstractAggregation
 {
+    use MetricTrait;
 
-}
\ No newline at end of file
+    /**
+     * @var string
+     */
+    private $bucketsPath;
+
+    /**
+     * @param string $name
+     * @param $bucketsPath
+     */
+    public function __construct($name, $bucketsPath)
+    {
+        parent::__construct($name);
+        $this->setBucketsPath($bucketsPath);
+    }
+
+    /**
+     * @return string
+     */
+    public function getBucketsPath()
+    {
+        return $this->bucketsPath;
+    }
+
+    /**
+     * @param string $bucketsPath
+     */
+    public function setBucketsPath($bucketsPath)
+    {
+        $this->bucketsPath = $bucketsPath;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getArray()
+    {
+        return ['buckets_path' => $this->getBucketsPath()];
+    }
+}