Scenario works but needs refactoring and bulletproofing