public function where($conditions = null, $types = [], $overwrite = false)
    {
        if ($conditions === null) {
            return $this->clause('where');
        }

        $this->_parts['where'] = (!$overwrite) ? Hash::merge($this->clause('where'), $conditions) : $conditions;

        return $this;
    }