public function getDirty()
    {
        $dirty = [];

        foreach ($this->properties as $property => $value) {
            if (!array_key_exists($property, $this->original)) {
                $dirty[$property] = $value;
            } elseif ($value !== $this->original[$property] &&
                !$this->originalIsNumericallyEquivalent($property)
            ) {
                $dirty[$property] = $value;
            }
        }

        return $dirty;
    }