refactored scenario inheritance hierarchy