more explanation added