refactored Scenario class