public function __call($name, $args)
 {
     if (substr($name, 0, 3) == 'set') {
         $field = ChargeOverAPI_Object::transformMethodToField($name);
         //$this->_arr[$field] = current($args);
         $this->{$field} = current($args);
         return true;
     } else {
         if (substr($name, 0, 3) == 'get') {
             $field = ChargeOverAPI_Object::transformMethodToField($name);
             //print('transformed [' . $name . ' to ' . $field . ']' . "\n");
             if (array_key_exists(0, $args) and is_numeric($args[0])) {
                 //if (!empty($this->_arr[$field][$args[0]]))
                 if (!empty($this->{$field}[$args[0]])) {
                     return $this->{$field}[$args[0]];
                     //return $this->_arr[$field][$args[0]];
                 }
                 return null;
             } else {
                 if (property_exists($this, $field)) {
                     return $this->{$field};
                     //return $this->_arr[$field];
                 }
             }
             return null;
         } else {
             if (substr($name, 0, 3) == 'add') {
                 $field = ChargeOverAPI_Object::transformMethodToField($name);
                 //if (!isset($this->_arr[$field]))
                 if (!isset($this->{$field})) {
                     //$this->_arr[$field] = array();
                     $this->{$field} = array();
                 }
                 $Obj = current($args);
                 //$this->_arr[$field][] = $Obj;
                 array_push($this->{$field}, $Obj);
             }
         }
     }
 }