public function __construct(array $record, array $options = null)
 {
     if (isset($options['model'])) {
         $this->_Model = $options['model'];
     } else {
         if (!empty($this->_modelName)) {
             $modelName = $this->_modelName;
         } else {
             $className = get_class($this);
             $prefix = ActiveRecordBehavior::$defaultSettings['prefix'];
             if (substr($className, 0, strlen($prefix)) == $prefix) {
                 $modelName = substr($className, strlen($prefix));
             } else {
                 $modelName = $className;
             }
         }
         $this->_modelName = $modelName;
         App::import('Model', $modelName);
         $this->_Model = ClassRegistry::init($modelName);
     }
     if (isset($record[$this->_Model->alias])) {
         $this->_Record = $record[$this->_Model->alias];
     } else {
         $this->_Record = $record;
     }
     if (empty($options['norefresh'])) {
         $oldRecord = $this->_Record;
         $this->refresh();
         $this->_Record = $oldRecord + $this->_Record;
     }
     $defaultFields = $this->_Model->activeRecordBehaviorSettings('defaults');
     $this->_Record += $defaultFields();
     $this->_directDelete = $this->_Model->activeRecordBehaviorSettings('directDelete');
     if (isset($options['directDelete'])) {
         $this->_directDelete = $options['directDelete'];
     }
     $create = true;
     if (isset($options['create'])) {
         $create = $options['create'];
     }
     if ($create) {
         ActiveRecordManager::create($this);
         $this->_created = true;
         $this->_changed = true;
     }
     foreach ($this->_Model->associations() as $associationType) {
         foreach ($this->_Model->{$associationType} as $associationName => $associationDefinition) {
             $association = new ActiveRecordAssociation($associationName, $this, $associationType, $associationDefinition, $record, $create);
             $this->_associations[$associationName] = $association;
             unset($this->_Record[$associationName]);
         }
     }
     foreach ($this->_Record as $key => $value) {
         $this->_originalRecord[$key] = $value;
     }
     App::uses(get_class($this) . 'Immutable', 'Model/' . $this->_Model->activeRecordBehaviorSettings('subfolder'));
 }