protected function setProperty($name, $value)
    {
        // adds both camelized key and unchanged key to properties
        $this->properties[str_replace(' ', '', ltrim(ucwords(preg_replace('/[^A-Z^a-z^0-9]+/', ' ', 'z' . $name)), 'Z'))] = $value;
        $this->properties[str_replace(' ', '', ucwords(preg_replace('/[^A-Z^a-z^0-9]+/', ' ', $name)))] = $value;
        $this->properties[$name] = $value;
    }