refactored sut