begin Marionette refactoring