if (typeof define !== 'function') { var define = require('amdefine')(module); }
define(['./deferred', './tools'], function(Deferred, tools) {

    return {
        asVal: asVal,
        create: create
    };

    function create(wyrmhole, mimetype, args) {
        var send = Deferred.fn(wyrmhole, 'sendMessage');
        return send(['New', mimetype, args]).then(function(spawnId) {
            return tools.wrapAlienWyrmling(wyrmhole, spawnId, 0);
        }).then(function(queenling) {
            queenling.destroy = function() {
                return send(['Destroy', queenling.spawnId]);
            };
            return queenling;
        }, function(error) {
            console.log("CREATE ERROR:", error);
            return Deferred.reject(error);
        });
    }

    function asVal(obj) {
        if (tools.isPrimitive(obj)) { return obj; }
        return { $type: 'json', data: obj };
    }
});

@@ -493,16 +493,38 @@
         
+Object.defineProperty(
 queenlin
@@ -528,18 +528,45 @@
 ling
-.
+, '
 destroy
- =
+', %7B%0A                value:
  fun
@@ -571,24 +571,28 @@
 unction() %7B%0A
+    
             
@@ -652,17 +652,36 @@
         
-%7D
+    %7D%0A            %7D)
 ;%0A      

Make queenling.destroy non-writable, non-enumerable, non-configurable