public GameActor createActor(String resource) {
        // if not yet created, create a new prototype
        if(!actors.containsKey(resource)) {
            createPrototype(resource);
        }
        
        GameActor actor = actors.get(resource);
        GameActor returned = factory.createActor(resource);
        
        actor.copyTo(returned);
        
        return returned;
    }