function obj = buildObject(mainfig)
  
    % get model type
  h = findobj(mainfig.handle, 'Tag', 'ModelTypeSelect');
  models = get(h, 'String');
  modelType = models{get(h, 'Value')};
  
  % get model name
  h = findobj(mainfig.handle, 'Tag', 'ModelSelect');
  models = get(h, 'String');
  model = models{get(h, 'Value')};
  
  % get parameters
  h = findobj(mainfig.handle, 'Tag', 'MODELVIEWERparamspanel');  
  pl = modelViewer.getParamsFromPanel(h);
  
  % Pass to constructor
  obj = [];
  switch modelType
    case 'ao'
      
      pl = combine(plist('built-in', model), pl);      
      obj = feval('ao', pl);

    case 'ssm'
      
      pl = combine(plist('built-in', model), pl);      
      obj = feval('ssm', pl);
      
    otherwise
      error('model type %s is currently unsupported', modelType);
  end
end
