custom sw explanation added