public function where($flag, $value = null)
    {
        if (!in_array(strtolower($flag), static::$searchCriteria)) {
            throw new InvalidArgumentException("Invalid where criteria '{$flag}'");
        }

        $this->where[$flag] = $value;
        return $this;
    }