refactored sln