in-depth explanation, thanks