how this works