more explanations about how it works