added more about how it works