grapple functions