I'm not entirely sure how this works....