added some more explanation how it works