anchor.diff:        attached() {
           this.$exerciseContainer = $('.mu-kids-exercise');
   
  -        this.setBlocklyCustomSettings();
  -        this.initialize();
  +        /*
  +        From Polymer docs: https://polymer-library.polymer-project.org/1.0/docs/devguide/registering-elements#initialization-order
  +
  +        There are no guarantees with regard to initialization timing between sibling elements.
  +        This means that siblings may become ready in any order.
  +        For accessing sibling elements when an element initializes, you can call async from inside the attached callback.
  +        */
  +        this.async(() => {
  +          this.setBlocklyCustomSettings();
  +          this.initialize();
  +        });
         },
   
         initialize() {
  
positive.code:         }
        },
  
        _initializeWorkspace: function(blockly, callback) {
          postpone(() => {
            const value = this.getEditorValue().value;
  
            blockly.workspaceXml = value || (
              this.teacherMode
                ? "<xml></xml>"
                : blockly.initialXml
            );
            this._scrollToMainBlock();
  
            callback();
          });
        },
  
        _subscribeToWorkspace: function(blockly, action) {
          setTimeout(() => {
            blockly.workspace.addChangeListener(action);
            action();
          });
        }
      });
    </script>
  
negative.code:       },
  
        enableContextButton() {
          mumuki.assetsLoadedFor('editor');
        },
  
        getBlockly: function () {
  