more docs about how it works