public function where($key, $operator, $value=null, $boolean=Queryable::AND_)
    {

        if ($value !== null) {
            $this->key = $key;
            $this->operator = $operator;
            $this->value = $value;
            $this->bool = $boolean;
            return $this;
        }

        if (is_array($operator)) {
            $this->key = $key;
            $this->operator = 'in';
            $this->value = $operator;
            $this->bool = $boolean;
            return $this;
        }

        $this->key = $key;
        $this->operator = '=';
        $this->value = $operator;
        $this->bool = $boolean;
        return $this;

    }
public function where($key, $operator, $value=null, $boolean=Queryable::AND_)
    {

        if ($value !== null) {
            $this->key = $key;
            $this->operator = $operator;
            $this->value = $value;
            $this->bool = $boolean;
            return $this;
        }

        if (is_array($operator)) {
            $this->key = $key;
            $this->operator = 'in';
            $this->value = $operator;
            $this->bool = $boolean;
            return $this;
        }

        $this->key = $key;
        $this->operator = '=';
        $this->value = $operator;
        $this->bool = $boolean;
        return $this;

    }
{@inheritdoc} Sets all values and returns itself

@param string $key
@param string $operator
@param mixed $value
@param string $boolean
@return self