public function fill($fields)
    {
        if (!is_array($fields)) {
            return;
        }
        
        if (isset($fields['ID'])) {
            $this->id = $fields['ID'];
        }
        
        $this->fields = $fields;
        
        $this->fieldsAreFetched = true;
        
        if (method_exists($this, 'afterFill')) {
            $this->afterFill();
        }

        $this->original = $this->fields;
    }