understand how it works