improve scenario api