background explanation added