code: function objectSpec(args) {
  		
  		var set = [];
  		
  		if (!args.id) {
  			
  			// create a base object
  			var spec = { attributes: { 'xsi:type': 'ObjectSpec' } };
  			
  			// check for containerview
  			if (args.listSpec.type === 'ContainerView' && args.containerView) {
  				spec.obj       = args.containerView;
  			}
  			else {
  				spec.obj       = util.moRef(args.listSpec.type, args.listSpec.id);
  			}
  			
  			// set the skip and select set
  			spec.skip      = (typeof(args.skip) === 'boolean') ? args.skip : true;
  			spec.selectSet = selectionSpec(args);
  			
  			// push the object
  			set.push(spec);
  		}
  		else {
  			// ensure args.id is an array of ids even if there is only one id
  			args.id = Array.isArray(args.id) ? args.id : [args.id];
  			
  			// loop through each if and create an object spec
  			_.forEach(args.id, function(id) {
  				set.push({
  					attributes: {
  						'xsi:type': 'ObjectSpec',
  					},
  					obj: util.moRef(args.type, id)
  				});
  			});
  		}
  		
  		// return the specSet
  		return set;
  	}
docs: new object spec