Passed but needs refactoring