scenario driver refactor