3 tests pass & refactored