public function getProperty($property, $default = null)
    {
        if (!$property) return $default;

        $value = isset($this->properties[$property]) ? $this->properties[$property] : $default;

        // If the attribute exists within the cast array, we will convert it to
        // an appropriate native PHP type dependant upon the associated value
        // given with the key in the pair. Dayle made this comment line up.
        if ($this->hasCast($property)) {
            return $this->castGetProperty($property, $value);
        }

        return $value;
    }