def on_touch_down(self, touch):
        """If I'm the first card to collide this touch, grab it, store my
        metadata in its userdict, and store the relative coords upon
        me where the collision happened.

        """
        if not self.collide_point(*touch.pos):
            return
        if 'card' in touch.ud:
            return
        touch.grab(self)
        self.dragging = True
        touch.ud['card'] = self
        touch.ud['idx'] = self.idx
        touch.ud['deck'] = self.deck
        touch.ud['layout'] = self.parent
        self.collide_x = touch.x - self.x
        self.collide_y = touch.y - self.y
If I'm the first card to collide this touch, grab it, store my
        metadata in its userdict, and store the relative coords upon
        me where the collision happened.