# this must be a protogeni aggregate. We should request a v2 ad rspec
                 # regardless of what the client user requested 
                 options['geni_rspec_version'] = version_manager.get_version('ProtoGENI 2').to_dict()     
-        options['geni_rspec_version'] = {'type': 'geni', 'version': '3.0'}
+        else:
+            options['geni_rspec_version'] = {'type': 'geni', 'version': '3.0'}
  
         call_args = [creds, options]
         result = server.ListResources(*call_args)
 
             del(options['geni_compressed'])
     
         # get the rspec's return format from options
-        rspec_version = version_manager.get_version(options.get('rspec_version'))
+        rspec_version = version_manager.get_version(options.get('geni_rspec_version'))
         version_string = "rspec_%s" % (rspec_version)
     
         # look in cache first
     
     
         results = threads.get_results()
-        rspec_version = version_manager.get_version(options.get('rspec_version'))
+        rspec_version = version_manager.get_version(options.get('geni_rspec_version'))
         if xrn:    
             result_version = version_manager._get_version(rspec_version.type, rspec_version.version, 'manifest')
         else: 
 
                     if content_type is None or content_type.lower() == version.content_type.lower() \
                       or version.content_type == '*':
                         retval = version
+                        ### sounds like we should be glad with the first match, not the last one
+                        break
         if not retval:
             raise UnvalidRSpecVersion("%s %s is not suported here"% (type, version_num, content_type))
         return retval
         elif isinstance(version, BaseVersion):
             retval = version
         else:
-            raise InvalidRSpec("No such version: %s "% str(version))
+            raise UnsupportedRSpecVersion("No such version: %s "% str(version))
  
         return retval