split main; improve CompositionRunner, formerly Main.js