Full explanation added